【RK3562】Ubuntu/Debian安装测试modbus
1. 开发板上配置libmodbus
1.1. 方法1:apt安装
1 | sudo apt-get install libmodbus-dev |
1.2. 方法2:GitHub源码安装
下载地址:GitHub - stephane/libmodbus: A Modbus library for Linux, Mac OS, FreeBSD and Windows
配置前的准备:
1 | sudo apt-get install autoconf |
将代码解压到虚拟机,进入到代码目录下(以下操作在ubuntu虚拟机上进行)
第一步:在代码目录下运行./autogen.sh
第二步:执行sudo ./configure && make install
以上两步执行完毕后,会在代码目录下生成一个install目录,进到install目录

将install目录下的子目录中的所有文件拷贝到开发板/usr/目录下与之对应的文件夹中。
将install目录拷贝到开发板上,在开发板上进入install目录,如下:

执行如下命令:
1 | sudo cp -r ./include/* /usr/include/ |
2. 在开发板上运行modbus测试程序
在Github源码目录下,作者提供了一个放测试程序的目录tests

这里以 unit-test-client.c 和 unit-test-server.c用作测试用例:

注****:以下操作是在GitHub源码安装配置modbus环境的前提下进行的,直接采用apt安装可能会导致版本不兼容的问题。
2.1. 以Modbus-RTU为例
在rk3562开发板上,找到两路RS232串口可以用作Modbus-RTU,如图:

用杜邦线短接,使其能自收自发(以上两个RS232接口的节点分别为/dev/ttyS6和/dev/ttyS8)。
修改unit-test-client.c 和 unit-test-server.c测试代码,指定RS232节点。
unit-test-client.c :

unit-test-server.c:

修改完毕后,进入虚拟机libmodbus源码目录,在虚拟机上交叉编译unit-test-client.c , unit-test-server.c:
1 | book@ubuntu:~/tests$ <交叉编译工具链> ./unit-test-client.c -o unit-test-client -L../install/lib/ -lmodbus -I../install/include/modbus |
将编译生成的两个可执行文件拷贝到开发板上运行:

在开发板上打开两个shell窗口,一个执行unit-test-server,一个执行unit-test-client(应先执行unit-test-server)
注****:以下是测试代码rtu的使用样例,更多用法请参考GitHub源码。
1 | ./unit-test-server rtu /dev/ttyS8 |
左边为client,右边为server,收发如下:

