工业总线协议都是比较简单的,其实不管什么协议都不难,只要你愿意仔仔细细的看看协议的标准.这里具体协议我就不讲了,主要介绍一下通过libmodbus来搭建自己的通信协议,libmodbus是github上一个开源的modbus实现,维护的比较好,项目地址如下https://github.com/stephane/libmodbus;拿到源码之后编译如下:
./autogen.sh
./configure --host=arm-linux-gnueabihf --prefix=/home/luckyxiang/Workspace/github/libmodbus/build
make
make install
我这里是交叉编译,通过–host指定编译工具链,然后–prefix指定安装目录,这样编译出来是动态so库,如果需要静态编译,去修改src目录下的Makefile文件,加上-static选项,’CFLAGS = -g -O2 -static’
放一段demo代码,
int modbus_data_get(void)
{
modbus_t *ctx = NULL;
int ret = -1;
uint16_t tab_rp_bits[DATA_FRAME];