modbus rtu通讯协议 如何判断超时
3个回答
展开全部
可以设置一个定时器中断,在接收到一帧数据的开头将其开启。
若接受完这帧数据定时器仍未中断,说明未超时;若定时器中断,则超时,可以判定这是一串命令的结束。
若接受完这帧数据定时器仍未中断,说明未超时;若定时器中断,则超时,可以判定这是一串命令的结束。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我亦将心向明月说得可以解决问题,但是需要根据不同命令设置超时时长,或者超时时间需要以最长命令为准.故效率不高.
我觉得更好的做法是:
设置一个标志量用来表示是否超时;
再用一个定时器,定时时长为发送3.5个字符的时间(当然为了保险时间可以长一些);
在定时器中置超时标志;
在串口中断中每收到一个字节时定时器清零;
主程序中根据超时标志做相应处理
我觉得更好的做法是:
设置一个标志量用来表示是否超时;
再用一个定时器,定时时长为发送3.5个字符的时间(当然为了保险时间可以长一些);
在定时器中置超时标志;
在串口中断中每收到一个字节时定时器清零;
主程序中根据超时标志做相应处理
参考资料: http://blog.163.com/wmq_xajh/blog/static/111798992200921323021164/
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以通过配置串口接收数据的超时时限来判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询