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

[复制链接]
 楼主| yangjiaxu 发表于 2024-8-24 13:32 | 显示全部楼层 |阅读模式
如果串口用定时器实现不定长收数据,这种定时器的时间是不是得根据波特率进行计算?
 楼主| yangjiaxu 发表于 2024-8-24 13:41 | 显示全部楼层
一般要计算的话,应该怎么计算,有啥公式吗?
呐咯密密 发表于 2024-8-26 09:11 | 显示全部楼层
是需要计算的,不过可以不完全依赖波特率,还要根据数据帧间隔时间来确定
闲云浩海 发表于 2024-8-26 10:16 | 显示全部楼层
可以参考modbus,3.5个字符间隔,当波特率较大时候,固定时间,不过这个要看通信的双方如何约定,如果对方每帧通信的时候,字符间隔都很小,时间就可以设置小的,反之则设置大。如果是自己定义的协议,简单方便些,就直接设置固定时间,比如10ms串口没有下一个数据,可以认为本次通信结束。
 楼主| yangjiaxu 发表于 2024-8-26 10:23 | 显示全部楼层
闲云浩海 发表于 2024-8-26 10:16
可以参考modbus,3.5个字符间隔,当波特率较大时候,固定时间,不过这个要看通信的双方如何约定,如果对方 ...

确实,之前我设置10ms是OK的,通讯都正常,后来移植一个项目上,用10ms发现,总是死机,后来才发现是需要改这个时间的,不然接收数据不完全
CXFLBH 发表于 2024-8-30 16:43 | 显示全部楼层
要根据波特率计算1.5个字符和3.5个字符的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

783

主题

3316

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部