一、下载libmodbus 库
在libmodbus 官网下载最新的libmodbus 库:
https://libmodbus.org/download/
- 编译
- 解压压缩包
tar -xvzf libmodbus-3.1.6.tar.gz
2. 进入解压后的libmodbus-3.1.6 目录,然后创建安装目录
cd libmodbus-3.1.6
mkdir _install
3.编译
./configure --build=i686 --host=arm-hisiv500-linux- --prefix=/home/xiaogang.lu/work_space/libmodbus/libmodbus-3.1.6/__install
或
./configure --build=i686 --host=arm CC=arm-hisiv500-linux- --prefix=/home/xiaogang.lu/work_space/libmodbus/libmodbus-3.1.6/__install
make
make install
- 安装
将编译好的安装包,安装到编译服务器上边设置好环境变量。
1)将_install 下的文件拷贝到/opt/hisi-linux 建立libmodbus 目录,然后修改lib/pkgconfig/libmodbus.pc 文件。
2)Prefix 路径一定要对应,libmodbus 名字要记住,后面makefile 调用时要与这个名字一样。
3)修改环境变量:
vi /etc/profile
4)生效环境变量:
source /etc/profile
查看:export
- 测试
1)在代码中调用引用libmodbus 库,修改makefile
添加测试代码到工程,或者单独自己编译应用程序。这里我是添加到工程里面的,将test_modbus.c 添加进去。
编译,然后nfs mount ,执行可执行程序。
2)配置modbus slave
注意:波特率,Slave ID 要一一对应。打开的串口设备UART1 /dev/ttyAMA1 一定要有。还有必须保证485硬件串口通信已接通。
3)测试结果:
可以看到对应的在测试程序中可以收到modbus 发过来的寄存器数值。
欢迎关注,交流更多嵌入式Linux ,开源开发。