libmodbus入坑记录

本人测试环境Manjaro Linux 18.04,协议原理自行百度,主要讲解怎么使用

 

1.获取源码

git clone https://github.com/stephane/libmodbus.git

2.编译

    2.1  ./autogen.sh                                  //生成configure文件

    2.2  ./configure --prefix=./install            //生成makefile文件,并指定安装路径

    2.3  make install                                   //编译安装

3.官方案例

    在tests文件夹下有官方提供的测试案例,在两个终端下面执行。

  1. ./unit-test-server rtu
  2. ./unit-test-client rtu

    要用这些案例做测试,前置条件时有两个串口设备并已经进行连接,本人用了两个USB转UART进行连接;

    通过dmseg | grep tty*可以查看获得的串口设备为ttyUSB0,ttyUSB1。

    有一个串口打不开没有权限的坑

    sudo vim /etc/udev/rules.d/70-ttyusb.rules 或 切换至root后键入vi /etc/udev/rules.d/70-ttyusb.rules

    增加如下内容:

    KERNEL=="ttyUSB[0-9]*",MODE="0666"

    保存,重新插入USB转串口,普通用户就能打开串口。

    这个时候再执行上面两个应用程序就可以了。

    坑2:两个测试代码,client是主机,server是从机,看代码的时候疑惑了好久。

4.libmodbus的交叉编译

Step1. 配置交叉编译环境

1. source ./set_env.sh   //交叉编译链的环境配置
2. ./configure --host=arm CC=arm-linux-gnueabihf-gcc --prefix=$PWD/_install

Step2. 编译安装

1. make 
2. make install

备注:如果需要编译动态库,在configure时加上:--enable-shared 选项即可。(./configure -h)

5.参考资料

应用开发讲解:

https://zhuge.blog.csdn.net/article/details/89193100

官方手册中文翻译:

https://blog.csdn.net/qq_23670601/article/details/82155378#%E6%BA%90%E6%96%87%E6%A1%A3libmodbus

你可能感兴趣的:(工具使用)