![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=1739140623-SYWjskbQHzqTRPxMVEp1sPjYFB5KrbSa-0-0defc0726c40d634644a16ecf309cb69)
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=1739140623-JbybkbeVbNUQScv4i9EsusZa2x80qxv2-0-4cb13cf5ac504c6cbf9a41947b0f6dc9)
根据不同的中断事件,event可取以下值:
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/44_04.jpg?sign=1739140623-XXNu0cbTj2GBRmsjdBACzxgpZeusuLCB-0-f80ab47348559ef36e68d2643a277ba8)
来看一个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=1739140623-wW7wjumqFnYIdCcSGcm9NkEyE5pyRf0r-0-19df10c7729e5c093ad1de349e694f3f)
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/46_01.jpg?sign=1739140623-CJ1oj7Qbe7gPYllAF2aVkQd4HRNTZ9tZ-0-d1d51de317398a2f4b419f65c3b91de0)