OpenHarmony API-WifiIotIoFuncGpio10 枚举 GPIO 硬件第 10 号引脚的所有功能

介绍

GPIO10 引脚支持的所有硬件复用功能,涵盖了从基础 GPIO 到各类总线、通信接口的功能选项

头文件

\\base\iot_hardware\interfaces\kits\wifiiot_lite\wifiiot_gpio_ex.h

定义

/**
 * @brief Enumerates the functions of GPIO hardware pin 9.
 */
typedef enum {
    /** GPIO9 function */
    WIFI_IOT_IO_FUNC_GPIO_10_GPIO,
    /** I2C0 SCL function */
    WIFI_IOT_IO_FUNC_GPIO_10_I2C0_SCL,
    /** UART2 RTS function */
    WIFI_IOT_IO_FUNC_GPIO_10_UART2_RTS_N,
    /** SDIO D2 function */
    WIFI_IOT_IO_FUNC_GPIO_10_SDIO_D2,
    /** SPI0 TXD function */
    WIFI_IOT_IO_FUNC_GPIO_10_SPI0_TXD,
    /** PWM0 OUT function */
    WIFI_IOT_IO_FUNC_GPIO_10_PWM0_OUT,
    /** I2S0 MCLK function */
    WIFI_IOT_IO_FUNC_GPIO_10_I2S0_MCLK = 7,
} WifiIotIoFuncGpio10;

解释

(1)通用基础功能

  • WIFI_IOT_IO_FUNC_GPIO_10_GPIO
    最基础的“通用 GPIO 模式”,此时引脚仅作为输入/输出引脚使用,可通过 GpioSetDir 配置方向,通过 GpioSetOutputVal 控制电平。
    典型场景:控制 LED、读取按键、驱动简单传感器等。

(2)串行通信总线功能

  • WIFI_IOT_IO_FUNC_GPIO_10_I2C0_SCL
    复用为 I2C0 总线的时钟线(SCL),与 SDA 线(需另一引脚配置)配合实现 I2C 通信。I2C 是两线制同步通信协议,适合连接多设备(如传感器、显示屏)。
    典型场景:连接温湿度传感器(SHT3x)、OLED 屏幕(SSD1306)等。

  • WIFI_IOT_IO_FUNC_GPIO_10_UART2_RTS_N
    复用为 UART2 的 RTS 信号(Request To Send,低电平有效),属于硬件流控信号。当接收端准备好接收数据时,拉低 RTS 通知发送端可以发送,避免数据溢出。
    典型场景:与需高速通信的设备(如模块、上位机)进行可靠串口数据传输。

  • WIFI_IOT_IO_FUNC_GPIO_10_SPI0_TXD
    复用为 SPI0 的发送数据线(MOSI/TDM),SPI 是高速同步通信协议,通常需配合 SCK(时钟)、MISO(接收)引脚使用,适合传输大量数据。
    典型场景:连接 Flash 芯片、ADC/DAC 模块、高速传感器等。

  • WIFI_IOT_IO_FUNC_GPIO_10_I2S0_MCLK
    复用为 I2S0 的主时钟(MCLK),I2S 是音频专用通信协议,MCLK 为音频芯片提供基准时钟(通常是采样率的倍数)。
    典型场景:连接音频 codec 芯片、麦克风、扬声器等音频设备。

(3)专用接口功能

  • WIFI_IOT_IO_FUNC_GPIO_10_SDIO_D2
    复用为 SDIO 总线的第 2 条数据线(D2),SDIO 是基于 SD 卡协议的扩展接口,支持高速数据传输,通常用于连接 Wi-Fi 模块、SD 卡等。
    典型场景:作为 SDIO 设备的数据传输线之一(需与 CMD、CLK、D0/D1/D3 等线配合)。

  • WIFI_IOT_IO_FUNC_GPIO_10_PWM0_OUT
    复用为 PWM0 的输出通道,可输出占空比可调的脉冲信号。PWM 信号通过占空比变化实现“模拟量控制”。
    典型场景:调节 LED 亮度、控制电机转速、调整舵机角度等。


原文出处:/show_1GW1waehuy0C.html