嵌入式Libmodbus下载和编译详解
Posted 沧海一笑-dj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式Libmodbus下载和编译详解相关的知识,希望对你有一定的参考价值。
00. 目录
01. Modbus开源库概述
Modbus作为一种常见的工业通信协议,几乎被所有的设备在支持,如果能在软件或者设备中增强Modbus的通信功能,无疑对于市场应用来说是个很吸引人的。对于Modbus开发来说,网络上存在很多的开源库。其中libmodbus和freemobus非常常见,值得开发者认真分析和学习。
02. Libmodbus下载
libmodbus库适用于Linux,Mac OS X,FreeBSD,QNX和Win32的Modbus库。
libmodbus是一个免费软件库,可根据Modbus协议发送/接收数据。该库用C编写,并支持RTU(串行)和TCP(以太网)通信。
libmodbus的许可证为LGPL v2.1。
源码下载:https://github.com/stephane/libmodbus
官网下载:https://libmodbus.org/download/
03. Libmodbus源码结构
3.1 源码下载完毕之后,解压,简单查看源代码目录的构成
doc目录:libmodbus库的各API接口说明文档。
m4目录:存放GNU m4文件,在这里对理解代码没有意义。
src目录:全部libmodbus源文件
tests目录:包含自带的测试代码
其它文件对我们理解源代码关系不大,可以暂时忽略。
3.2 src目录内容
win32:定了在Windows下使用Visual Studio编译时的项目文件和工程文件,以及相关配置选项等。
Makefile.am:Makefile.am是Linux下AutoTool编译时读取相关编译参数的配置文件,用于生成Makefile文件,因用于Linux下开发,在这里暂时忽略。
源码文件描述:
mudbus.c 核心文件,试了Modbus协议层,定了通用的Modbus消息发送和接收函数、各功能码对应的函数。
modbus.h libmodbus对外接口API头文件
modbus-data.c 数据处理的通用函数,包括大小端相关的字节、位交换等函数。
modbus-private.h libmodbus内部使用的数据结构和函数定义
modbus-rtu.c 通信层协议,RTU模式相关的函数定义,主要是串口的设置、连接和消息的发送、接收等等
modbus-rtu.h RTU模式对外提供的API定义
modbus-rtu-private.h RTU模式的私有定义
modbus-tcp.c 通信层实现,TCP模式下相关函数的定义、主要包括TCP/IP网络的设置、连接、消息的发送和接收等等。
modbus-tcp.h 定义TCP模式度外提供的各API定义
modbus-tcp-private.h TCP模式的私有定义
modbus-version.h.in 版本定义文件
04. Visual Studio2019编译Libmodbus源码
4.1 双击configure.js,生成config.h和modbus-version.h文件
4.2 使用Visual Studio2019打开工程文件
4.3 项目文件升级对话框,选择确定
4.4 编译工程文件,发生编译错误。
原因是新生成的modbus-version.h文件没有正确加载,先移除该文件,然后再添加该文件
按下Alt + F7弹出项目属性设置对话框,依次找到如下选项
再次编译,显示编程成功,生成对应的动态库。
05. 附录
Libmodbus官方网站:https://libmodbus.org/
Freemodbus官方网站:https://www.embedded-experts.at/en/freemodbus/about/
以上是关于嵌入式Libmodbus下载和编译详解的主要内容,如果未能解决你的问题,请参考以下文章