FreeModbus在STM32上移植。

 http://www.amobbs.com/thread-4848191-1-1.html (出处: amoBBS 阿莫电子论坛)

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(文件大小:483K) (原文件名:STM32_MODBUS.rar)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值