打印
[ARM入门]

如果串口用定时器实现不定长收数据,这种定时器的时间是不是得根据波特率进行计算?

[复制链接]
2032|5
手机看帖
扫描二维码
随时随地手机跟帖
沙发
yangjiaxu|  楼主 | 2024-8-24 13:41 | 只看该作者
一般要计算的话,应该怎么计算,有啥公式吗?

使用特权

评论回复
板凳
呐咯密密| | 2024-8-26 09:11 | 只看该作者
是需要计算的,不过可以不完全依赖波特率,还要根据数据帧间隔时间来确定

使用特权

评论回复
地板
闲云浩海| | 2024-8-26 10:16 | 只看该作者
可以参考modbus,3.5个字符间隔,当波特率较大时候,固定时间,不过这个要看通信的双方如何约定,如果对方每帧通信的时候,字符间隔都很小,时间就可以设置小的,反之则设置大。如果是自己定义的协议,简单方便些,就直接设置固定时间,比如10ms串口没有下一个数据,可以认为本次通信结束。

使用特权

评论回复
5
yangjiaxu|  楼主 | 2024-8-26 10:23 | 只看该作者
闲云浩海 发表于 2024-8-26 10:16
可以参考modbus,3.5个字符间隔,当波特率较大时候,固定时间,不过这个要看通信的双方如何约定,如果对方 ...

确实,之前我设置10ms是OK的,通讯都正常,后来移植一个项目上,用10ms发现,总是死机,后来才发现是需要改这个时间的,不然接收数据不完全

使用特权

评论回复
6
CXFLBH| | 2024-8-30 16:43 | 只看该作者
要根据波特率计算1.5个字符和3.5个字符的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:擅长电路设计、物联网产品开发、射频产品开发,喜欢打篮球,技术交流,欢迎各位来聊~

630

主题

2627

帖子

5

粉丝