免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4486 | 回复: 0
打印 上一主题 下一主题

[其它] 使用libmodbus读取温度传感器的数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-05-05 00:28 |只看该作者 |倒序浏览
本人最近刚刚接触modbus协议。     
用下列代码读取温度传感器的数据:
  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <modbus.h>
  4 #include <errno.h>
  5
  6 int main(int argc,char *argv[])
  7 {
  8     modbus_t *ctx;
  9     uint16_t tab_reg[64];
10     int rc;
11     int i;
12
13     ctx = modbus_new_rtu("/dev/ttys0",115200,'N',8,1);
14     modbus_set_debug(ctx,1);
15     modbus_set_slave(ctx,17);
16     if(modbus_connect(ctx) == -1)
17     {
18         fprintf(stderr,"connection failed:%s\n",modbus_strerror(errno));
19         modbus_free(ctx);
20         return -1;
21     }
22     rc = modbus_read_registers(ctx,0,10,tab_reg);
23     if(rc == -1)
24     {
25         fprintf(stderr,"%s\n",modbus_strerror(errno));
26         return -1;
27     }
28     for(i=0; i<rc; i++)
29     {
30         printf("reg[%d] = %d(0x%x)\n",i,tab_reg[i],tab_reg[i]);
31     }
32
33     modbus_close(ctx);
34     modbus_free(ctx);
35
36     return 0;
37 }
~                        
程序到了这部分执行失败
22     rc = modbus_read_registers(ctx,0,10,tab_reg);
23     if(rc == -1)
24     {
25         fprintf(stderr,"%s\n",modbus_strerror(errno));
26         return -1;
27     }
                                   
错误是connection timeout。
来请教大神,希望会的能给解答一下。
                                                                                       
~      
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP