Linux应用开发 | libmodbus
程序员文章站
2022-09-21 15:34:43
一、下载libmodbus官网二、使用进入到libmodbus-3.1.6里面创建一个文件夹install,编译信息都输出到这里设置编译输出路径./configure --prefix=/home/zys/linux/application/libmodbus/libmodbus-3.1.6/install/正在配置配置完成 再make在make install将lib下的3个动态库libmodbus.so.x.x,拷贝到项目所在环境的/lib目录。1】下载2】解压安...
一、下载
二、使用
进入到libmodbus-3.1.6里面
makedir install
创建一个文件夹install,编译信息都输出到这里
设置编译选项 (两种情况 ubuntu or 开发板)
ubuntu下:
./configure --prefix=/home/zys/linux/application/libmodbus/libmodbus-3.1.6/install/
开发板(需指定交叉编译器):
./configure --host=arm-linux-gnueabihf --enable-static --prefix=/home/zys/linux/application/libmodbus/libmodbus-3.1.6/install/
正在配置
make
make install
将lib下的3个动态库libmodbus.so.x.x,拷贝到项目所在环境的/lib目录。
1】下载
2】解压安装包:tar zxvf libmodbus-3.1.6.tar.gz
3】进入安装包:cd libmodbus-3.1.6
4】创建文件夹,存放编译输出:mkdir install
5】配置交叉编译器:注意两种情况
6】make
7】make install
三、测试
/**
* @name: 测试modbus客户端
* @test: 首先启动modbus slave客户端软件
* @return {type}
*/
int test_md_client()
{
modbus_t *mb;
int len;
uint16_t tab_reg[32];
mb = modbus_new_tcp("192.168.2.189", 502);
modbus_connect(mb);
/* Read 5 registers from the address 0 */
len=modbus_read_registers(mb, 0, 5, tab_reg);
printf("len=%d\n",len);
modbus_close(mb);
modbus_free(mb);
}
上面的libmodbus库编译好之后,将三个so结尾的库文件拷贝到当前工程的lib目录里,然后把libmodbus的几个头文件拷贝到当前工程的inc目录下。
修改makefile文件,增加库的路径
#modbus动态库的位置 如果还报错找不到 指定下export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib
LDFLAGS += -L./lib -lmodbus
如果还报错找不到 指定下export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./lib
最后make
运行
这里返回了5 应该是读回来了5个寄存器的值
四、modbus slave
注意:
(1)连接Connection采用Modbus TCP/IP协议;
(2)网络地址为本地地址,127.0.0.1;
(3)端口设置为“502”;
(4)选择“Ignore Unit ID”,如果不选择,测试程序返回空值。
本文地址:https://blog.csdn.net/myWorld001/article/details/108991704
上一篇: 推动城市治理智慧化水平不断提升
下一篇: 详解Java序列化机制