modbus rtu通讯协议 如何判断超时

 我来答
我亦将心向明月
2010-08-09
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
可以设置一个定时器中断,在接收到一帧数据的开头将其开启。
若接受完这帧数据定时器仍未中断,说明未超时;若定时器中断,则超时,可以判定这是一串命令的结束。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
player1113
推荐于2018-04-11 · 超过13用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:31.5万
展开全部
我亦将心向明月说得可以解决问题,但是需要根据不同命令设置超时时长,或者超时时间需要以最长命令为准.故效率不高.

我觉得更好的做法是:
设置一个标志量用来表示是否超时;
再用一个定时器,定时时长为发送3.5个字符的时间(当然为了保险时间可以长一些);
在定时器中置超时标志;
在串口中断中每收到一个字节时定时器清零;
主程序中根据超时标志做相应处理

参考资料: http://blog.163.com/wmq_xajh/blog/static/111798992200921323021164/

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
051201012
2010-08-09
知道答主
回答量:26
采纳率:0%
帮助的人:26.5万
展开全部
你可以通过配置串口接收数据的超时时限来判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式