![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=1739283758-9fTaqiMfnf73nLVJ9iK628qBEYOJ9g9F-0-49b7975441f895828b252057a7650ccc)
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=1739283758-lsfpaSU8RsgLk0zhyQinXEUJKx7morCi-0-b736fadf043f706622797e5fcdf881f1)
根据不同的中断事件,event可取以下值:
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/44_04.jpg?sign=1739283758-rNy3F5EA9joTpPaKaIZKWY8htRh6dXJc-0-9783cd6fde50c8da8c8823f5596e57ff)
来看一个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=1739283758-ZMbXxrDTj68izNjAdVwBvYA3JsY7SM7R-0-acf299a9c5f879938e573350035f8ae2)
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/46_01.jpg?sign=1739283758-oxmQklCXLxEHqxZyrOFJBqDFq6Z311J8-0-0a18b16595f8da59152422a6403c2e69)