- 论坛徽章:
- 0
|
本人最近刚刚接触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。
来请教大神,希望会的能给解答一下。
~ |
|