本帖最后由 笨鸟想飞 于 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 上的测试测试结果
@八度空间
[img]file:///C:UsersAdministratorAppDataRoamingTencentUsers505017069QQWinTempRichOleB0TPP8UCAH`QI)6AQ3[Y]~X.png[/img]
不对。
站号、功能码跟这个保持寄存器缓冲区usRegHoldingBuf没关系。这个0代表保持寄存器起始地址REG_HOLDING_START。
例如你REG_HOLDING_START是100,101地址的值就在usRegHoldingBuf[1]里存放。以此类推。
你说的是协议格式,第一帧发从机地址,也就是你说的站号,第二帧发功能码,等等。
假如你功能码06,寄存器地址101,数据123.
发完CRC后从机接收到,就把usRegHoldingBuf[1]的值改为123.
一周热门 更多>