GPIO 架构
GPIO 驱动 Driver 层采用 RT-Thread 的 PIN 设备驱动框架,如果只使用 HAL 层也可以支持 baremetal 方式的应用场景。
-
GPIO HAL 层。提供了 PinMux 和通用 GPIO 功能寄存器级的功能封装。
-
GPIO Driver 层。
-
Rt-Thread。通用 GPIO 功能注册成 RTT Pin driver,PinMux 直接以 API 的形式提供。
-
BareMental。客户自定义 Driver 直接调用 GPIO HAL 层 Api。
-
RTT Pin 驱动
Rt-Thread 调用 rt_device_pin_register()
把通用 GPIO 功能注册成 Pin Driver,Pin
Driver 提供了以下功能:
-
模式配置。配置输入、输出模式,输入上下拉配置。
-
读取端口状态。读取输入端口的电平状态。
-
设置端口状态。配置输出端口的电平状态。
-
GPIO 中断配置。注册中断,使能中断。
因为一个系统只允许注册一个 Pin Device,所以在调用的时候除了先使用 rt_device_find()
查找 Device
的形式来调用功能,也可以直接使用一组 rt_pin_xxx()
的函数直接来调用功能。