[APM32F1] 空闲总线检测的疑问

[复制链接]
 楼主| 心跳回响 发表于 2025-4-25 18:04 | 显示全部楼层 |阅读模式
在阅读APM32F103的datasheet时,看到USART中,极海有实现空闲总线的检测,有标志位可查询,有中断可触发。但是没有说明这人上“空闲”多长时间?
各位网友,有人做过类似的测试吗?
空闲帧.jpg

jobszheng 发表于 2025-4-26 19:45 | 显示全部楼层
从上面的图例来看,像是一个字节的空闲时间后,就触发了。
我没有经过实际实验来验证
lemonboard 发表于 2025-4-26 19:58 | 显示全部楼层
我估计是参考LIN总线的空闲帧来处理吧!
只有一个字节的时间间隔
 楼主| 心跳回响 发表于 2025-4-27 10:47 | 显示全部楼层
jobszheng 发表于 2025-4-26 19:45
从上面的图例来看,像是一个字节的空闲时间后,就触发了。
我没有经过实际实验来验证 ...

这个是官方的说明吗?
 楼主| 心跳回响 发表于 2025-4-27 10:47 | 显示全部楼层
lemonboard 发表于 2025-4-26 19:58
我估计是参考LIN总线的空闲帧来处理吧!
只有一个字节的时间间隔

LIN总线 没有使用过呀
Gfan 发表于 2025-4-27 15:06 | 显示全部楼层
空闲的时间与当前通信的波特率等UART的配置相关

因为空闲帧其实是一个完全“1”的数据帧,而一个数据帧的传输时间与波特率大小,停止位配置,奇偶校验位配置等相关。时间长度计算参考一个数据帧的传输时间。


lQLPJyHf4UzK0yvM680EG7B75TpDUzyOdgfvID28yoEA_1051_235.png




计算公式:

空闲帧时间 =(1 个起始位 + 数据位数 + (若使能则包含 1 个奇偶校验位) + 停止位数) × (1 / 波特率)

举例:若配置為 8 位数据、不使用奇偶校验、1 个停止位、波特率 115200,则空闲帧总比特数为

1(起始位) + 8(数据位) + 1(停止位) = 10(bit),

那么空闲帧时间约为 10 × (1 / 115200) ≈ 86.8 μs。

希望可以帮到您哈

jobszheng 发表于 2025-4-27 19:28 | 显示全部楼层
官方的说明来了。
做为帧尾判别,这一个空闲帧也是足够了
分形梦想家 发表于 2025-4-28 18:11 | 显示全部楼层
嗯,做数据流的帧尾判断。非常方便了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

38

帖子

0

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