ZhangFei1990//. 发表于 2015-9-6 16:54:13

串口超时接收的时间怎么计算?

串口超时接收的时间如何根据波特率来计算?

venus5712 发表于 2015-9-6 19:56:14

打包时间间隔为当前波特率下发送两个字节所需要的时间,计算方法为1000/波特率*串口数据bit数(起始位+数据位+停止位),单位ms,如9600波特率下发送一个字节所需时间为1000/9600*(1+8+1)约等于1ms,同理115200时时间为0.086ms,注意:此计算得来的值与实际运行的值,有一定误差,波特率越小,误差越大。(参考:http://www.usr.cn/Faq/6.html)

ZhangFei1990//. 发表于 2015-9-6 21:22:30

venus5712 发表于 2015-9-6 19:56
打包时间间隔为当前波特率下发送两个字节所需要的时间,计算方法为1000/波特率*串口数据bit数(起始位+数 ...

此时间就是串口超时接收的时间吗?例如9600波特率,当时间超过了2ms还没有接收到下一个数据是不是就意味着一帧数据已经发送完成?

ccstc 发表于 2015-9-6 22:05:26

一般标准是3.5字节

redstone8415 发表于 2015-9-7 07:57:12

(ˇˍˇ) 想~了解

venus5712 发表于 2015-9-7 09:11:40

ZhangFei1990//. 发表于 2015-9-6 21:22
此时间就是串口超时接收的时间吗?例如9600波特率,当时间超过了2ms还没有接收到下一个数据是不是就意味 ...

在STM32串口中断中 IDLE(总线空闲中断)判断是超过一个字符的时间即产生总线空闲中断。

如果想要获取具体的时间,建议结合逻辑分析仪看下数据周期再处理。

我在CAN接收超时中断中用的时间是5ms。

ZhangFei1990//. 发表于 2015-9-7 09:16:40

venus5712 发表于 2015-9-7 09:11
在STM32串口中断中 IDLE(总线空闲中断)判断是超过一个字符的时间即产生总线空闲中断。

如果想要获取具体 ...

谢谢,好像都没有一个统一,都是凭经验!
页: [1]
查看完整版本: 串口超时接收的时间怎么计算?