FreeModbus在STM32上移植。

莫妮卡   2012-12-19 15:08 楼主
FreeModbus在STM32上移植...1.5的,调试使用的是modscan32,可以响应命令,但是没做返回数据。
使用串口1和TIM2

参考前辈的一些移植范烈,没多少解释,编译通过,但是不能正常接受命令。
我仔细分析了下,FreeModbus使用的定时器和协议上的时序要求不是一样的,区别:
RTU模式:协议上是字符间空闲时间大于1.5个字符时间,则认为该帧不完整;帧之间间隔必须大于3.5个字符时间。
FreeModbus在第一次接收到字符时启动定时器,并从空闲状态转入接收状态,每接收一次字符,判断接收字符的长度大于等于4或3(RTU/ASCII模式最小帧长度)&& CRC校验,如接收到完整的帧,则转入执行模式...其中定时器的作用是在一定时间内,若未接收到完整的帧,超时后转入空闲模式,缓存指针指向0位置;该时间长度为 大于最大帧在指定波特率传输一帧所需要的时间,即为定时器溢出中断时间。定时器不涉及RTU传输协议的时间处理(我之前误解了)。

修改定时器时间后,现在可以接收到modscan32发送的标准指令了,不过没有写返回。
里面可能还有一些错误,需要的参考参考,一起讨论学习吧。。。



ourdev_654434SOCVNS.rar (482.68 KB)
(下载次数: 1580, 2012-12-19 15:09 上传)

回复评论 (19)

赶紧下载,阅读阅读
点赞  2013-12-5 10:10
顶起,不错的资料。
点赞  2015-7-21 18:43
太好咧,ARM keil  uVision 5 通过了。
点赞  2015-12-21 00:21
有注释的程序没有?
点赞  2016-1-19 23:30
下来学习一下。谢谢!
点赞  2016-2-23 10:52
不错,谢谢分享。
点赞  2016-6-21 14:07
不错,谢谢分享。
点赞  2016-6-30 21:39
下了,学习下,谢谢楼主
点赞  2016-8-4 14:37
看来是不错的资料,新手入门
点赞  2016-9-16 10:32
学习
点赞  2016-9-22 09:50
谢谢分享!
点赞  2017-1-3 17:06
谢谢楼主,谢谢共享!
点赞  2017-2-17 00:02
学习学习
点赞  2017-3-14 08:26
赶紧下载,学习学习
点赞  2017-3-15 18:52
非常不错的资料,学习了!
点赞  2017-11-21 09:54
看看
点赞  2018-2-27 16:22
我爱着爱着我的人,朋友和家人。
点赞  2018-5-4 10:37

赶紧学习学习

点赞  2019-12-18 13:52

感谢楼主

点赞  2021-4-26 09:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复