2025-11-08 05:40:29
STM32串口中断是当串口收到数据或者达到指定阈值时,硬件会主动向CPU发送信号告诉它“有事情要处理”。就像你手机收到短信会震动提醒一样,串口收到数据后硬件自动触发中断请求,CPU就会暂停当前任务去处理串口数据,处理完再回来继续原来的工作。这个过程不需要软件主动查询,特别省电省心。
为什么是这个样子呢?因为STM32的串口模块内置了“事件检测器”,当接收寄存器满(RXNE)或者发送寄存器空(TXE)时,硬件会立即生成中断信号。比如STM32F1系列主频72MHz时,中断响应时间最快只要几个时钟周期(参考手册P299)。系统还支持设置中断优先级,比如把串口中断设为最高优先级,这样即使CPU在处理其他任务,一旦串口有数据就会立即“插队”处理。硬件主动通知的优势很明显,比如当波特率设置为115200时(参考公式(f_PCLK2/16)/( oversampling+1 )),即使CPU忙于其他操作,也能实时响应串口数据,避免数据丢失。
本题链接: