请选择 进入手机版 | 继续访问电脑版
查看: 2637|回复: 2

[RT1052] Modbus我来了

[复制链接]
  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2018-11-19 10:58:37 | 显示全部楼层 |阅读模式
    [飞凌RT1052] Modbus我来了
            本次试用主要以日常的开发与使用相关,平时使用最多的就是工业通讯最常用的Modbus通讯协议了。现在我们就将modbus协议移植到我们飞凌RT1052开发板上。
            第一步、我们肯定是要安装交叉编译环境,大家参考网友 Angel_YY 的帖子[原创] 飞凌RT1052+ 5 Linux软件的开发 进行操作,帖子写得非常详细,非常实用。
            第二步、我们安装Modbus第三方库 sudo apt-get install libmodbus-dev,安装完毕后我们就可以在Linux C代码里面写上#include <modbus.h>了。
            第三步、需要我们在程序里做移植修改:
            1.串口参数配置
    1. m_modbus = modbus_new_rtu("/dev/ttyS0"/*serialPort*/,9600/*baud*/,78,8/*dataBits  */,1/*stopBits*/);//ttys0是Linux第一个串口,有的时候默认串口是ttys1
    2. modbus_set_debug(m_modbus, 0);
    复制代码
           2.设置等待时间,超过时间没连接上则报错:
    1. struct timeval response_timeout;
    2. response_timeout.tv_sec = 1;
    3. response_timeout.tv_usec = 0;
    4. modbus_set_response_timeout(m_modbus,&response_timeout);
    复制代码
           3.从串口读取数据,一般是开关量数据,只有0、1两态。
    1. int i;
    2. if(m_modbus == NULL)
    3. {
    4.   printf("No connection,check your device!\n");
    5.   return;
    6. }
    7. uint8_t dest[1024];  //setup memory for data
    8. uint16_t * dest16 = (uint16_t *) dest;
    9. memset(dest, 0, 1024);
    10. int ret = -1; //return value from read functions
    11. int is16Bit = 0;

    12. modbus_set_slave(m_modbus, slave);

    13. ret = modbus_read_input_bits(m_modbus, 0/*startAddress*/, 24/*noOfItems*/, dest);//24值得是读取端口数量
    复制代码
           4.关闭modbus连接
    1. if(m_modbus) {
    2.   modbus_close(m_modbus);
    3.   modbus_free(m_modbus);
    4.   m_modbus = NULL;
    5. }
    复制代码
           OK, 这就是modbus操作的全部过程,怎么样,还算简单吧?

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-20 15:04
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    49

    主题

    188

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    2946
    最后登录
    2023-7-24
    发表于 2018-11-19 14:32:32 | 显示全部楼层
    所以呢?你的帖子里面出现了板子了吗?
    今天心情不错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-11-7 16:36
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    28

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    253
    最后登录
    2019-11-24
    发表于 2018-11-20 22:31:59 | 显示全部楼层
    bu 不错额  我回头也按你的编译下
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-19 06:29 , Processed in 0.120042 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表