![RT-Thread设备驱动开发指南](https://wfqqreader-1252317822.image.myqcloud.com/cover/260/46670260/b_46670260.jpg)
上QQ阅读APP看书,第一时间看更新
2.2 创建UART设备
本节介绍如何创建UART设备。对UART设备来说,在驱动开发时需要先从struct rt_serial_device结构中派生出新的串口设备模型,然后根据自己的设备类型定义私有数据域。特别是在可能有多个类似设备的情况下(例如串口1、串口2),设备接口可以共用同一套接口,不同的只是各自的数据域(例如寄存器基地址)。
例如,STM32的UART设备模型从struct rt_serial_device派生,并增加了STM32 UART的特有数据结构,如STM32串口句柄、串口配置信息、DMA结构信息等,代码如下所示。
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/33_01.jpg?sign=1739284701-EXK3r4hcgrpJuGlCQfBZ35Z9FcyQiI97-0-d466a3c60c209a7b202ca395595296e7)
串口驱动根据此类型定义串口设备对象并初始化相关变量,MCU一般都支持多个串口,所以串口驱动也可以支持多个串口设备。以下是在驱动文件中定义多个串口设备的代码片段,其中定义了每个串口的配置信息,如名称、句柄、中断入口等,同时定义了串口配置信息表和串口对象表,包含多个串口对象信息。
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/33_02.jpg?sign=1739284701-REWIMAOMQEiWjNLFgdRnKvMLReuP9znW-0-c3a5e29633801f171a9497e213ec1092)
![](https://epubservercos.yuewen.com/8B2CE7/25929799901480006/epubprivate/OEBPS/Images/34_01.jpg?sign=1739284701-PgdZdMDm5elwDOy3cunPOhM7mGCg1ZQg-0-91efe41343351c581b7bdad8a9899b39)