libmodbus相关资料整理
2024-08-27 03:55:46
/******************************************************************************
* libmodbus相关资料整理
* 说明:
* 目测后续可能要折腾这个modbus,先找点资料看看情况,防止一问三不知。
*
* 2017-3-14 深圳 南山平山村 曾剑锋
*****************************************************************************/ 一、参考文档:
. Modbus通讯协议
http://baike.baidu.com/item/Modbus%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE/5972462
. libmodbus() Manual Page
http://libmodbus.org/docs/v3.0.6/
. 使用libmodbus實作Modbus協定
http://felix-lin.com/linux/%E4%BD%BF%E7%94%A8libmodbus%E5%AF%A6%E4%BD%9Cmodbus%E5%8D%94%E5%AE%9A/
. Libmodbus 编程说明
http://shaocheng.li/post/blog/2015-05-24
. libmodbus的移植
http://46aae4d1e2371e4aa769798941cef698.devproxy.yunshipei.com/fulinus/article/details/37659661
. modbus?關於modbus RTU的使用說明II
http://www.xuan.idv.tw/wordpress/?p=2427
. modbus?關於modbus RTU的使用說明
http://www.xuan.idv.tw/wordpress/?p=1705
. linux下使用libmodbus库实现modbusTCP与modbusRTU功能
http://www.ithao123.cn/content-10779860.html 二、Ubuntu安装libmodbus:
sudo apt-get install libmodbus5 libmodbus-dev 三、交叉编译:
. libmodbus.so与modbus_rtu_test.c应当放在同一文件夹下
. arm-linux-gcc -o modbus_rtu_test modbus_rtu_test.c -L. -lmodbus 四、Ubuntu编译、测试:
. 测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <modbus/modbus.h> int main(void)
{
modbus_t *mb;
uint8_t bit_status[] = {}; mb = modbus_new_rtu("/dev/ttyUSB0",,'N',,);//open port
modbus_set_slave(mb, ); //set slave address
modbus_set_debug(mb, true); modbus_connect(mb); struct timeval t;
t.tv_sec=;
t.tv_usec=; //set modbus time 1000ms
modbus_set_response_timeout(mb,&t); modbus_read_bits(mb, , , bit_status); printf("%d %d\n", bit_status[], bit_status[]); modbus_close(mb);
modbus_free(mb); return ;
}
. 编译:
gcc main.c -lmodbus
. 没有连接设备输出结果:
Qt@zengjf:~/modbus$ ./a.out
Opening /dev/ttyUSB0 at bauds (N, , )
[][][][][][][BD][CB]
Waiting for a confirmation...
<><><><><>
ERROR CRC received != CRC calculated . 逻辑分析仪抓图数据:
最新文章
- 推荐一个Android Studio很实用的插件android-butterknife-zelezny
- 关于FluentNhibernate数据库连接配置,请教
- 《zw版&#183;Halcon-delphi系列原创教程》 Halcon分类函数006, image,影像处理(像素图)
- Exchange Server简介与搭建
- Permissions 0664 for &#39;/home/root/.ssh/id_rsa&#39; are too open.
- 优先队列(Priority Queue)
- java移动/赋值文件 copy/move file
- 值类型与引用类型(特殊的string) Typeof和GetType() 静态和非静态使用 参数传递 相关知识
- CI 在nginx中出现404错误的解决方式
- EasyPHP的Apache报错
- BZOJ 1604: [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居
- [转载]Winform中Control的Invoke与BeginInvoke方法
- 重学前端 --- Promise里的代码为什么比setTimeout先执行?
- 自定义shiro实现权限验证方法isAccessAllowed
- shell从入门到精通进阶之一:Shell基础知识
- Docker 运维高级应用管理
- sdn交换机和普通交换机区别
- CF Good Bye 2018
- arcgismanager登陆信息不对
- day5 五、数字类型、字符串,列表类型的基本操作和内置方法