有人做过采集温度,并通过Modbus协议传输协议传输给PC吗?

2019-08-02 16:37发布

目前只是检测温度值,但需要采集多个,所以老师要求利用Modbus协议,之前没有接触过利用通信协议来实现数据的收发,希望有前辈能指点一下!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
chen3bing
1楼-- · 2019-08-02 19:52
你可以搜一下MODBUS协议,不难的。
comeon201208
2楼-- · 2019-08-03 00:52
这个我同学在学校专门研究过的,可以的话我可以帮你问问的啊
雨落沉轩
3楼-- · 2019-08-03 04:38
 精彩回答 2  元偷偷看……
忄小龙
4楼-- · 2019-08-03 05:55
不难吧,你想了解哪方面啊?之前做过485通信modbus
雨落沉轩
5楼-- · 2019-08-03 09:52
本帖最后由 雨落沉轩 于 2012-12-20 19:35 编辑
忄小龙 发表于 2012-12-20 14:14
不难吧,你想了解哪方面啊?之前做过485通信modbus


因为之前没接触过,所以希望能从前辈那边得到点提示,具体我还不知道怎么问,还在看。但目前我在《MSP430系列单片机实用C语言程序设计_张晞_人民邮电出版社》这本书上看到有一个关于发送包的例子,用的是USART的串口。我看了一下,其中用到了一个接收控制寄存器U0RCTL,代码如下:
***********************************************************************/
#pragma vector=USCIAB0RX_VECTOR
__interrupt void Usart0Rx()
{ if((U0RCTL&RXERR)==0)
     {
          AddUsData(UCA0RXBUF);
     }
  else
     {
          SetBaoErr();
          U0RCTL &= ~(FE+PE+OE+BRK);  
     }
     LPM3_EXIT;
}

而我用的是之前在Ti网站上申请到MSP430lanuchpad,芯片是G2553,用的是USCI的串口(没有USART),对比一下两个数据手册,发现没有这个寄存器。U0RCTL &= ~(FE+PE+OE+BRK);  这句话的意思应该是产生错误时这些相应的位会置位,然后发送完包错误信息SetBaoErr()后,需要把它清楚。本来想把书上的程序移植到G2553上的,但碰到了这个问题不知道如何解决?不知道能否请前辈指点一二。
comeon201208
6楼-- · 2019-08-03 11:17
回复楼主的,我同**系方式的短信发给你的,查收下的啊

一周热门 更多>