FreeModbus在STM32103上移植一直回复同一个数据

2019-07-21 08:23发布

本帖最后由 笨鸟想飞 于 2017-8-11 16:24 编辑

最近参考了 八度空间 的FreeModbus在STM32上移植  http://openedv.com/forum.php?mod=viewthread&tid=69081&extra=&highlight=modbus&page=4
进行在STM32103ZE(战舰版)移植,在八度哥的原版程序进行串口配置修改,移植后,用串口调试助手和Modbus Poll  上测试
发现一直回复同一个数据,
修改过从机地址后,回复的数据从机地址会改变并符合。
求有做过STM32103系列移植FreeModBUS的好心人,解答一下。
源码如下: V3.0裸机移植.rar (6.94 MB, 下载次数: 420) 2017-8-11 16:24 上传 点击文件名下载附件



以下为在Modbus Poll  上的测试测试结果
B0TPP8UCAH`QI)6AQ3[Y]~X.png

EC~%H`GCWO4~]XU2RJXQYJA.png

6NXIXYREABBPB1138XE]0TQ.png @八度空间
[img]file:///C:UsersAdministratorAppDataRoamingTencentUsers505017069QQWinTempRichOleB0TPP8UCAH`QI)6AQ3[Y]~X.png[/img]


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
564646396
1楼-- · 2019-07-24 18:48
usRegHoldingBuf[0]  代表站号  usRegHoldingBuf[1] 功能码    usRegHoldingBuf[2]起始地高  usRegHoldingBuf[3]起始地址低    usRegHoldingBuf[4] 数据的高    usRegHoldingBuf[5] 数据的低   CRC校验等  对吗?
笨鸟想飞
2楼-- · 2019-07-24 21:56
https://wenku.baidu.com/view/69e ... 19.html?from=search

参考网上的一些资料吧,其实大致就是,
主机下发:xx(从站地址)  xx(功能码) xx(寄存器地址)  xx(寄存器个数) xx(CRC)
从机(单片机)响应:xx(从站地址)  xx(功能码) xx(寄存器地址)  xx(寄存器数值) xx(CRC)


大概就是这样的意思吧,当然不同功能码的格式不同
笨鸟想飞
3楼-- · 2019-07-25 01:32
564646396 发表于 2017-8-25 11:18
usRegHoldingBuf[0]  代表站号  usRegHoldingBuf[1] 功能码    usRegHoldingBuf[2]起始地高  usRegHoldingB ...


https://wenku.baidu.com/view/69e6e70876c66137ee061919.html?from=search

参考网上的一些资料吧,其实大致就是,
主机下发:xx(从站地址)  xx(功能码) xx(寄存器地址)  xx(寄存器个数) xx(CRC)
从机(单片机)响应:xx(从站地址)  xx(功能码) xx(寄存器地址)  xx(寄存器数值) xx(CRC)


大概就是这样的意思吧,当然不同功能码的格式不同
564646396
4楼-- · 2019-07-25 04:13
 精彩回答 2  元偷偷看……
jiutianshenjian
5楼-- · 2019-07-25 06:48
本帖最后由 jiutianshenjian 于 2017-8-26 17:10 编辑
564646396 发表于 2017-8-25 11:18
usRegHoldingBuf[0]  代表站号  usRegHoldingBuf[1] 功能码    usRegHoldingBuf[2]起始地高  usRegHoldingB ...

不对。
站号、功能码跟这个保持寄存器缓冲区usRegHoldingBuf没关系。这个0代表保持寄存器起始地址REG_HOLDING_START。
例如你REG_HOLDING_START是100,101地址的值就在usRegHoldingBuf[1]里存放。以此类推。


你说的是协议格式,第一帧发从机地址,也就是你说的站号,第二帧发功能码,等等。
假如你功能码06,寄存器地址101,数据123.
发完CRC后从机接收到,就把usRegHoldingBuf[1]的值改为123.
564646396
6楼-- · 2019-07-25 07:32
笨鸟想飞 发表于 2017-8-25 12:38
https://wenku.baidu.com/view/69e6e70876c66137ee061919.html?from=search

参考网上的一些资料吧, ...

  我看了很久   不知道哪些是定义好的  哪个数组定义的是地址  哪些数组定义的是寄存器等 。。。。 有点笨  英语盲  C语言也不是很好 正在学

一周热门 更多>