![RT-Thread设备驱动开发指南](https://wfqqreader-1252317822.image.myqcloud.com/cover/260/46670260/b_46670260.jpg)
上QQ阅读APP看书,第一时间看更新
2.5 UART设备中断处理
UART设备驱动需要将对应的中断事件通知给UART设备驱动框架,让驱动框架完成后续的数据收发处理等事情。UART设备中断处理需要使用UART设备驱动库的中断处理函数调用RT-Thread UART设备驱动框架提供的rt_hw_serial_isr函数,从而通知UART设备驱动框架对应中断的发生。rt_hw_serial_isr()中断处理函数的原型如下所示:
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/44_02.jpg?sign=1739293608-Ery2YJuadXRE6zBtetzb8RXjthFYeFY4-0-4c78c09109834096be452909afae53ee)
rt_hw_serial_isr中断处理函数的参数如表2-7所示。
表2-7 rt_hw_serial_isr中断处理函数的参数
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/44_03.jpg?sign=1739293608-qMeXMtlGa6dyVOgZM8JGPUuBlH0U3B7F-0-258735b14ab1ca3c51695c87ce9bfd34)
根据不同的中断事件,event可取以下值:
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/44_04.jpg?sign=1739293608-7V6FkSHVXUMNjfj4s3uDh5FwzRX8e6HX-0-0e2a318c56a11c647a709b1214bf24ad)
来看一个STM32 UART设备中断处理示例。在如下所示的代码中,使用STM32 UART驱动库的中断处理函数USARTx_IRQHandler调用RT-Thread UART设备驱动框架提供的rt_hw_serial_isr中断处理函数,以完成中断的对接,且在进入与退出中断时需要调用中断进入和中断退出函数。
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/45_01.jpg?sign=1739293608-fWYZJd4yPtzVKGjNCFWtFT0HNkhnEate-0-ba1dbc18d70ca71774f4ffe015ba5cc5)
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/46_01.jpg?sign=1739293608-swR6j3VYCwiJ9TXXLwV3gBOAUdO3fxGW-0-a06964926d39f678b03b7572ad773389)