定义
GPIO9 引脚支持的所有硬件复用功能,涵盖了从基础 GPIO 到各类总线、通信接口的功能选项
/**
* @brief Enumerates the functions of GPIO hardware pin 9.
*/
typedef enum {
/** GPIO9 function */
WIFI_IOT_IO_FUNC_GPIO_9_GPIO,
/** I2C0 SCL function */
WIFI_IOT_IO_FUNC_GPIO_9_I2C0_SCL,
/** UART2 RTS function */
WIFI_IOT_IO_FUNC_GPIO_9_UART2_RTS_N,
/** SDIO D2 function */
WIFI_IOT_IO_FUNC_GPIO_9_SDIO_D2,
/** SPI0 TXD function */
WIFI_IOT_IO_FUNC_GPIO_9_SPI0_TXD,
/** PWM0 OUT function */
WIFI_IOT_IO_FUNC_GPIO_9_PWM0_OUT,
/** I2S0 MCLK function */
WIFI_IOT_IO_FUNC_GPIO_9_I2S0_MCLK = 7,
} WifiIotIoFuncGpio9;
头文件
\\base\iot_hardware\interfaces\kits\wifiiot_lite\wifiiot_gpio_ex.h
解释
(1)通用基础功能
WIFI_IOT_IO_FUNC_GPIO_9_GPIO
最基础的“通用 GPIO 模式”,此时引脚仅作为输入/输出引脚使用,可通过GpioSetDir配置方向,通过GpioSetOutputVal控制电平。
典型场景:控制 LED、读取按键、驱动简单传感器等。
(2)串行通信总线功能
WIFI_IOT_IO_FUNC_GPIO_9_I2C0_SCL
复用为 I2C0 总线的时钟线(SCL),与 SDA 线(需另一引脚配置)配合实现 I2C 通信。I2C 是两线制同步通信协议,适合连接多设备(如传感器、显示屏)。
典型场景:连接温湿度传感器(SHT3x)、OLED 屏幕(SSD1306)等。WIFI_IOT_IO_FUNC_GPIO_9_UART2_RTS_N
复用为 UART2 的 RTS 信号(Request To Send,低电平有效),属于硬件流控信号。当接收端准备好接收数据时,拉低 RTS 通知发送端可以发送,避免数据溢出。
典型场景:与需高速通信的设备(如模块、上位机)进行可靠串口数据传输。WIFI_IOT_IO_FUNC_GPIO_9_SPI0_TXD
复用为 SPI0 的发送数据线(MOSI/TDM),SPI 是高速同步通信协议,通常需配合 SCK(时钟)、MISO(接收)引脚使用,适合传输大量数据。
典型场景:连接 Flash 芯片、ADC/DAC 模块、高速传感器等。WIFI_IOT_IO_FUNC_GPIO_9_I2S0_MCLK
复用为 I2S0 的主时钟(MCLK),I2S 是音频专用通信协议,MCLK 为音频芯片提供基准时钟(通常是采样率的倍数)。
典型场景:连接音频 codec 芯片、麦克风、扬声器等音频设备。
(3)专用接口功能
WIFI_IOT_IO_FUNC_GPIO_9_SDIO_D2
复用为 SDIO 总线的第 2 条数据线(D2),SDIO 是基于 SD 卡协议的扩展接口,支持高速数据传输,通常用于连接 Wi-Fi 模块、SD 卡等。
典型场景:作为 SDIO 设备的数据传输线之一(需与 CMD、CLK、D0/D1/D3 等线配合)。WIFI_IOT_IO_FUNC_GPIO_9_PWM0_OUT
复用为 PWM0 的输出通道,可输出占空比可调的脉冲信号。PWM 信号通过占空比变化实现“模拟量控制”。
典型场景:调节 LED 亮度、控制电机转速、调整舵机角度等。