1. 空闲中断(Idle Interrupt)
触发条件
当串口总线在接收数据后持续保持空闲状态(如高电平)超过一帧时间(即一个字符传输时间)时触发。
硬件自动检测总线空闲状态,与数据长度无关。
特点
依赖总线物理状态,而非时间。
常用于检测不定长数据帧的结束,无需依赖特定结束符。
应用场景
Modbus通信:不定长数据包的接收。
DMA接收:配合DMA自动搬运数据,空闲中断通知CPU处理。
高速数据流:快速响应数据帧结束,减少软件延迟。
2. 超时中断(Timeout Interrupt)
触发条件
当两次接收数据的间隔超过预设时间时触发。
时间阈值通过硬件计数器或波特率计算配置(如STM32的接收超时功能RTO)。
特点
基于时间阈值,与总线状态无关。
可灵活配置超时时间。
需在每次收到数据时重置超时计数器。
应用场景
数据分段接收:处理间歇性数据流(如GPS模块输出)。
通信故障检测:长时间无数据时触发错误处理。
低功耗场景:超时后进入睡眠模式。
|