RISCV_GPIO使用参考


REVISION HISTORY

Revision No.
Description
Date
1.0
  • Initial release
  • 04/18/2023
    1.1
  • 增加第七章DEBUG&FAQ
  • 03/31/2025

    1. 概述

    General Purpose Input Output (通用输入/输出)简称为GPIO。

    risc-v下,由sstar gpio driver提供统一的操作接口。使用者可以对所需GPIO做输入,输出,拉高,拉低,设置中断等操作。

    相关driver路径:

    sc/driver/sysdriver/gpio/drv/src/gpio_test.c
    sc/driver/sysdriver/gpio/drv/src/mdrv_gpio.c
    sc/driver/sysdriver/gpio/drv/src/mdrv_gpio_io.c
    sc/driver/sysdriver/gpio/drv/src/mdrv_sw_iic.c
    sc/driver/sysdriver/gpio/drv/src/ms_gpioi2c.c
    sc/driver/sysdriver/gpio/drv/pub/drv_gpio.h
    sc/driver/sysdriver/gpio/drv/pub/mdrv_gpio.h
    sc/driver/sysdriver/gpio/drv/pub/mdrv_gpio_io.h
    sc/driver/sysdriver/gpio/drv/pub/mdrv_sw_iic.h
    sc/driver/sysdriver/gpio/hal/pcupid/src/irq-gpi.c
    sc/driver/sysdriver/gpio/hal/pcupid/src/irq-pmsleep.c
    sc/driver/sysdriver/gpio/hal/pcupid/src/mhal_gpio.c
    sc/driver/sysdriver/gpio/hal/pcupid/src/mhal_pinmux.c
    sc/driver/sysdriver/gpio/hal/pcupid/pub/gpio.h
    sc/driver/sysdriver/gpio/hal/pcupid/pub/padmux.h
    sc/driver/sysdriver/gpio/hal/pcupid/inc/gpi-irqs.h
    sc/driver/sysdriver/gpio/hal/pcupid/inc/mhal_gpio.h
    sc/driver/sysdriver/gpio/hal/pcupid/inc/mhal_pinmux.h
    sc/driver/sysdriver/gpio/hal/pcupid/inc/pmsleep-irqs.h
    sc/driver/sysdriver/gpio/hal/pcupid/pub/gpio.h
    sc/driver/sysdriver/gpio/hal/pcupid/pub/padmux.h
    

    测试代码可以参考文件:

    sc/driver/sysdriver/gpio/drv/src/gpio_test.c
    

    2. 关键字说明

    2.1. GPIO Index

    原理图上GPIO的Pad name可以在表1-1中查找到对应的GPIO Index,GPIO Index作为软件操作GPIO相关函数的输入参数使用。

    例如:希望操作的GPIO为 PAD_KEY1,根据表1-1中的内容找到对应的GPIO Index为12。

    表1-1:GPIO Index与PAD对应表

    Pad Name GPIO Index Pad Name GPIO Index Pad Name GPIO Index
    PAD_UART0_TX 0 PAD_PWM_OUT00 1 PAD_PWM_OUT01 2
    PAD_SPI_CK 3 PAD_SPI_HLD 4 PAD_SPI_CZ 5
    PAD_SPI_WPZ 6 PAD_SPI_DI 7 PAD_SPI_DO 8
    PAD_GPIOE_00 9 PAD_GPIOE_01 10 PAD_GPIOE_02 11
    PAD_GPIOE_03 12 PAD_GPIOE_04 13 PAD_GPIOE_05 14
    PAD_GPIOE_06 15 PAD_GPIOE_07 16 PAD_GPIOE_08 17
    PAD_GPIOE_09 18 PAD_GPIOE_10 19 PAD_GPIOE_11 20
    PAD_GPIOE_12 21 PAD_GPIOE_13 22 PAD_GPIOE_14 23
    PAD_GPIOE_15 24 PAD_GPIOE_16 25 PAD_GPIOE_17 26
    PAD_GPIOE_18 27 PAD_GPIOE_19 28 PAD_GPIOE_20 29
    PAD_GPIOE_21 30 PAD_GPIOE_22 31 PAD_GPIOE_23 32
    PAD_GPIOE_24 33 PAD_GPIOE_25 34 PAD_GPIOE_26 35
    PAD_GPIOE_27 36 PAD_GPIOE_28 37 PAD_GPIOA_00 38
    PAD_GPIOA_01 39 PAD_GPIOA_02 40 PAD_GPIOA_03 41
    PAD_GPIOA_04 42 PAD_GPIOA_05 43 PAD_GPIOA_06 44
    PAD_GPIOA_07 45 PAD_GPIOA_08 46 PAD_GPIOA_09 47
    PAD_GPIOA_10 48 PAD_GPIOA_11 49 PAD_EMMC_RST 50
    PAD_EMMC_CLK 51 PAD_EMMC_CMD 52 PAD_EMMC_DS 53
    PAD_EMMC_D3 54 PAD_EMMC_D4 55 PAD_EMMC_D0 56
    PAD_EMMC_D5 57 PAD_EMMC_D1 58 PAD_EMMC_D6 59
    PAD_EMMC_D2 60 PAD_EMMC_D7 61 PAD_GPIOA_12 62
    PAD_GPIOA_13 63 PAD_GPIOA_14 64 PAD_GPIOA_15 65
    PAD_GPIOA_16 66 PAD_GPIOA_17 67 PAD_GPIOA_18 68
    PAD_GPIOA_19 69 PAD_GPIOB_00 70 PAD_GPIOB_01 71
    PAD_GPIOB_02 72 PAD_GPIOB_03 73 PAD_GPIOB_04 74
    PAD_GPIOB_05 75 PAD_GPIOB_06 76 PAD_GPIOB_07 77
    PAD_GPIOB_08 78 PAD_OUTP_RX0_CH0 79 PAD_OUTN_RX0_CH0 80
    PAD_OUTP_RX0_CH1 81 PAD_OUTN_RX0_CH1 82 PAD_OUTP_RX0_CH2 83
    PAD_OUTN_RX0_CH2 84 PAD_OUTP_RX0_CH3 85 PAD_OUTN_RX0_CH3 86
    PAD_GPIOC_00 87 PAD_GPIOC_01 88 PAD_GPIOC_02 89
    PAD_GPIOC_03 90 PAD_GPIOC_04 91 PAD_GPIOC_05 92
    PAD_GPIOC_06 93 PAD_GPIOC_07 94 PAD_GPIOC_08 95
    PAD_OUTP_CH0 96 PAD_OUTN_CH0 97 PAD_OUTP_CH1 98
    PAD_OUTN_CH1 99 PAD_OUTP_CH2 100 PAD_OUTN_CH2 101
    PAD_OUTP_CH3 102 PAD_OUTN_CH3 103 PAD_OUTP_CH4 104
    PAD_OUTN_CH4 105 PAD_SAR_ADC0_00 106 PAD_SAR_ADC0_01 107
    PAD_SAR_ADC0_02 108 PAD_SAR_ADC0_03 109 PAD_SAR_ADC0_04 110
    PAD_SAR_ADC0_05 111 PAD_SAR_ADC0_06 112 PAD_SAR_ADC0_07 113
    PAD_SAR_ADC0_08 114 PAD_SAR_ADC0_09 115 PAD_SAR_ADC0_10 116
    PAD_SAR_ADC0_11 117 PAD_SAR_ADC0_12 118 PAD_SAR_ADC0_13 119
    PAD_SAR_ADC0_14 120 PAD_PWM_ADC01 121 PAD_PWM_ADC00 122
    PAD_GPIOD_01 123 PAD_GPIOD_02 124 PAD_GPIOD_03 125
    PAD_GPIOD_00 126 PAD_UART0_RX 127 PAD_PM_GPIO4 128
    PAD_PM_GPIO5 129 PAD_PM_PWM1_OUT 130 PAD_PM_I2C_SDA 131
    PAD_PM_PWM0_OUT 132 PAD_PM_I2C_SCL 133 PAD_PM_GPIO1 134
    PAD_PM_GPIO3 135 PAD_PM_UART1_TX 136 PAD_PM_GPIO2 137
    PAD_PM_GPIO7 138 PAD_PM_GPIO6 139 PAD_PM_UART1_RX 140
    PAD_PM_ADC00_IN 141 PAD_PM_GPIO0 142 PAD_PM_SAR_GPIO0 143
    PAD_PM_SAR_GPIO1 144 PAD_PM_SAR_GPIO2 145 PAD_PM_SAR_GPIO3 146
    PAD_PM_SAR_GPIO4 147

    3. 功能描述

    • 共有0-147编号共148个GPIO Pin,均可配置为GPIO Mode
    • 支持对gpio管脚的上下拉状态进行配置
    • 支持对gpio管脚的驱动能力进行配置

    4. 硬件连接

    将对应gpio引脚连接至硬件即可。

    5. 用法介绍

    GPIO mode的优先级高于padmux,意味着如果对某个正在被功能复用的引脚,设定的GPIO mode进行操作,就会影响到原先复用的功能的通讯。

    5.1. Config配置

    Sigmastar Drivers-->
        [*] SigmaStar GPIO
        [*] SigmaStar padmux
    

    5.2. PADMUX设定

    使用gpio可通过sysdecs配置gpio padmux,如下配置MIPI padmux与将PAD_GPIOA_01配置成gpio mode

    sc\driver\sysdriver\sysdesc\hal\pcupid\pub\pcupid-default.sys:

    <padmux>
    [schematic_u32_u32_u32]
        PAD_OUTP_CH0            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_P_CH0,
        PAD_OUTN_CH0            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_N_CH0,
        PAD_OUTP_CH1            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_P_CH1,
        PAD_OUTN_CH1            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_N_CH1,
        PAD_OUTP_CH2            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_P_CH2,
        PAD_OUTN_CH2            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_N_CH2,
        PAD_OUTP_CH3            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_P_CH3,
        PAD_OUTN_CH3            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_N_CH3,
        PAD_OUTP_CH4            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_P_CH4,
        PAD_OUTN_CH4            PINMUX_FOR_MIPI_TX_MODE_1        MDRV_PUSE_TX_MIPI_N_CH4,
        PAD_SAR_ADC0_08         PINMUX_FOR_I2C4_MODE_2           MDRV_PUSE_I2C4_SCL,
        PAD_SAR_ADC0_09         PINMUX_FOR_I2C4_MODE_2           MDRV_PUSE_I2C4_SDA,
        PAD_GPIOA_01            PINMUX_FOR_GPIO_MODE             MDRV_PUSE_NA;
    [status_u8] 1;
    

    5.3. Sample Code

    #include <drv_gpio.h>
    
    int main()
    {
        u8 index = 0;
        drv_gpio_pad_set(index);
        drv_gpio_pad_oen(index);
    
        //do your operation
        drv_gpio_set_high(index);
        drv_gpio_set_low(index);
    
        //......
    }
    

    6. API参考

    使用者在要调用gpio API进行操作的时候,仅需要参考drv_gpio.h当中提供的API。该功能模块提供以下接口:

    API名称 功能
    drv_gpio_init 关闭 gpio的 ALL_PAD_IN设定
    drv_gpio_pad_set 设定某根GPIO引脚为GPIO mode
    drv_gpio_padgroupmode_set 设定pad mode
    drv_gpio_pad_val_set 设定pad mode
    drv_gpio_pad_val_get 查找对应gpio当前设定的pad mode
    drv_gpio_pad_val_check 检查gpio引脚与pad_mode是否匹配
    drv_gpio_pad_oen 设定引脚gpio mode output
    drv_gpio_pad_odn 设定引脚gpio mode input
    drv_gpio_pad_in_out 获取指定引脚的输入输出状态
    drv_gpio_pad_read 获取指定gpio的电平高低
    drv_gpio_pull_high 设定指定引脚为输出高电平
    drv_gpio_pull_low 设定指定引脚为输出低电平
    drv_gpio_set_high 设定引脚输出高电平
    drv_gpio_set_low 设定引脚输出低电平
    drv_gpio_pull_up 设定引脚内部上拉
    drv_gpio_pull_down 设定引脚内部下拉
    drv_gpio_pull_off 取消引脚上下拉
    drv_gpio_pull_status 获取引脚上下拉状态
    drv_gpio_drv_set 设定引脚驱动能力
    drv_gpio_drv_get 获取引脚当前驱动能力
    drv_gpio_to_irq 获取gpio中断号
    drv_gpio_pad_clr 功能:清除指定index的gpio_mdoe
    drv_gpio_vol_val_set not support
    drv_gpio_get_check_count 得到gpio check count
    drv_gpio_get_check_info 得到gpio check info
    drv_gpio_name_to_num 通过管脚名获取管脚index
    drv_gpio_num_to_name 通过管脚index获取管脚名
    drv_gpio_padmode_to_val 通过padmode名获取padmode值
    drv_gpio_padmode_to_padindex 通过padmode获取padindex
    drv_gpio_get_reg_cfg 得到gpio寄存器配置

    6.1. drv_gpio_init

    • static inline void drv_gpio_init(void)

      功能:关闭 gpio的 ALL_PAD_IN设定

      参数:

      参数 说明
      void -

      返回值:

      返回值 说明
      void -

    6.2. drv_gpio_pad_set

    • static inline void drv_gpio_pad_set(U8 gpio_index)

      功能:设定某根GPIO引脚为GPIO mode

      参数:

      参数 说明
      gpio_index gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      void -

    6.3. drv_gpio_padgroupmode_set

    • static inline U8 drv_gpio_padgroupmode_set(U32 pad_mode)

      功能:设定pad mode,设定成功后会自动清除对应所有引脚的gpio mode

      参数:

      参数 说明
      pad_mode 要设定的padmode,padmod定义请参考padmux.h

      返回值:

      返回值 说明
      U8 0: 设定成功
      1: 设定失败

    6.4. drv_gpio_pad_val_set

    • static inline U8 drv_gpio_pad_val_set(U8 gpio_index, U32 pad_mode)

      功能: 设定pad mode,但设定成功后,只会清除gpio_index的gpio mode

      参数:

      参数 说明
      gpio_index gpio引脚编号,引脚编号请参考gpio.h
      pad_mode 所要设定的pad mode,pad mode定义请参考padmux.h

      返回值:

      返回值 说明
      U8 0:设定成功
      1:设定失败,优先检查是否gpio_index与pad_mode不匹配

    6.5. drv_gpio_pad_val_get

    • static inline U8 drv_gpio_pad_val_get(U8 gpio_index, U32* pad_mode)

      功能:查找对应gpio当前设定的pad mode

      参数:

      参数 说明
      gpio_index gpio引脚编号,引脚编号请参考gpio.h
      pad_mode 指针类型,用于存储gpio当前设定的pad mode

      返回值:

      返回值 说明
      U8 0:查找成功,pad mode存在参数pad_mode当中
      1:查找失败,引脚错误

    6.6. drv_gpio_pad_val_check

    • static inline U8 drv_gpio_pad_val_check(U8 gpio_index, U32 pad_mode)

      功能:检查gpio引脚与pad_mode是否匹配

      参数:

      参数 说明
      gpio_index 所要查找的gpio引脚编号,引脚编号请参考gpio.h
      pad_mode 所要查找的pad mode,pad mode定义请参考padmux.h

      返回值:

      返回值 说明
      U8 0:匹配
      1:不匹配

    6.7. drv_gpio_pad_oen

    • static inline U8 drv_gpio_pad_oen(U8 gpio_index)

      功能:设定引脚gpio mode output,但不会自动去设定gpio mode enable

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 0:成功
      1:引脚超出范围,或者引脚未设定成gpio mode

    6.8. drv_gpio_pad_odn

    • static inline U8 drv_gpio_pad_odn(U8 gpio_index)

      功能:设定引脚gpio mode input,但不会自动去设定gpio mode enable

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 0:成功
      1:引脚超出范围,或者引脚未设定成gpio mode

    6.9. drv_gpio_pad_in_out

    • static inline U8 drv_gpio_pad_in_out(U8 gpio_index, U8* pad_in_out)

      功能:获取指定引脚的输入输出状态

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h
      pad_in_out 指针类型,0:输出; 1:输入

      返回值:

      返回值 说明
      U8 0:成功
      1:引脚超出范围

    6.10. drv_gpio_pad_read

    • static inline U8 drv_gpio_pad_read(U8 gpio_index, U8* pad_level)

      功能:获取指定gpio的电平高低

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h
      pad_level 指针类型,0:低电平; 1:高电平

      返回值:

      返回值 说明
      U8 0:成功
      1:引脚超出范围

    6.11. drv_gpio_pull_high

    • static inline U8 drv_gpio_pull_high(U8 gpio_index)

      功能:设定指定引脚为输出高电平,不会自动设定gpio mode enable

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 0:设定成功
      1:设定失败

    6.12. drv_gpio_pull_low

    • static inline U8 drv_gpio_pull_low(U8 gpio_index)

      功能:设定指定引脚为输出低电平,不会自动设定gpio mode enable

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 0:设定成功
      1:设定失败

    6.13. drv_gpio_set_high

    • static inline U8 drv_gpio_set_high(U8 gpio_index)

      功能:设定引脚输出高电平,会自动设定gpio mode enable

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 0:设定成功
      1:设定失败,引脚超出范围

    6.14. drv_gpio_set_low

    • static inline U8 drv_gpio_set_low(U8 gpio_index)

      功能:设定引脚输出低电平,会自动设定gpio mode enable

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 0:设定成功
      1:设定失败,引脚超出范围

    6.15. drv_gpio_pull_up

    • static inline U8 drv_gpio_pull_up(U8 gpio_index)

      功能:设定引脚内部上拉

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 0:设定成功
      1:设定失败,引脚超出范围

    6.16. drv_gpio_pull_down

    • static inline U8 drv_gpio_pull_down(U8 gpio_index)

      功能:设定引脚内部下拉

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 0:设定成功
      1:设定失败,引脚超出范围

    6.17. drv_gpio_pull_off

    • static inline U8 drv_gpio_pull_off(U8 gpio_index)

      功能:取消引脚上下拉

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 0:设定成功
      1:设定失败,引脚超出范围

    6.18. drv_gpio_pull_status

    • static inline U8 drv_gpio_pull_status(U8 gpio_index, U8* pull_status)

      功能:获取引脚上下拉状态

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h
      pull_status 指针类型,存储上下拉状态;0:下拉;1:上拉

      返回值:

      返回值 说明
      U8 0:获取成功
      1:获取失败,引脚超出范围

    6.19. drv_gpio_drv_set

    • static inline U8 drv_gpio_drv_set(U8 gpio_index, U8 level)

      功能:设定引脚驱动能力

      参数:

      参数 说明
      gpio_index 所要设定的gpio引脚编号,引脚编号请参考gpio.h
      level 设定的驱动能力等级,详见HW Checklist

      返回值:

      返回值 说明
      U8 0:设定成功
      1:设定失败,引脚超出范围

    6.20. drv_gpio_drv_get

    • static inline U8 drv_gpio_drv_get(U8 gpio_index, U8* level)

      功能:获取引脚当前驱动能力

      参数:

      参数 说明
      gpio_index 所要获取的gpio引脚编号,引脚编号请参考gpio.h
      level 当前引脚的驱动能力等级

      返回值:

      返回值 说明
      U8 0:获取成功
      1:获取失败,引脚超出范围

    6.21. drv_gpio_to_irq

    • static inline int drv_gpio_to_irq(U8 gpio_index)

      功能:获取gpio中断号

      参数:

      参数 说明
      gpio_index 所要获取的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      U8 -1:设定失败
      >=0:引脚对应的中断号

    6.22. drv_gpio_pad_clr

    • static inline void drv_gpio_pad_clr(U8 gpio_index)

      功能:清除指定index的gpio_mdoe

      参数:

      参数 说明
      gpio_index 所要获取的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      void -

    6.23. drv_gpio_vol_val_set

    不支持

    6.24. drv_gpio_get_check_count

    • static inline u8 drv_gpio_get_check_count(void)

      功能:得到gpio check count

      参数:

      参数 说明
      void -

      返回值:

      返回值 说明
      void -

    6.25. drv_gpio_get_check_info

    • static inline void* drv_gpio_get_check_info(u8 index)

      功能:得到gpio check info

      参数:

      参数 说明
      index 所要获取的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      void* check info

    6.26. drv_gpio_name_to_num

    • static inline u8 drv_gpio_name_to_num(u8* p_name, u8* gpio_index)

      功能:通过管脚名获取管脚index

      参数:

      参数 说明
      p_name gpio引脚名,引脚名请参考gpio.h
      gpio_index 存取所要获取的gpio引脚编号,引脚编号请参考gpio.h

      返回值:

      返回值 说明
      u8 0:成功
      1:引脚超出范围,或者引脚未设定成gpio mode

    6.27. drv_gpio_num_to_name

    • static inline u8 drv_gpio_num_to_name(u8 gpio_index, const u8** p_name)

      功能:通过管脚index获取管脚名

      参数:

      参数 说明
      gpio_index 所要获取的gpio引脚编号,引脚编号请参考gpio.h
      p_name 存储管脚名

      返回值:

      返回值 说明
      u8 0:成功
      1:引脚超出范围,或者引脚未设定成gpio mode

    6.28. drv_gpio_padmode_to_val

    • static inline u8 drv_gpio_padmode_to_val(u8* p_mode, u32* mode_to_val)

      功能:通过padmode名获取padmode值

      参数:

      参数 说明
      p_mdoe 所要获取的padmode名,请参考padmux.h
      mode_to_val 所要获取的padmode编号,编号请参考padmux.h

      返回值:

      返回值 说明
      void 0:成功
      1:引脚超出范围,或者引脚未设定成gpio mode

    6.29. drv_gpio_padmode_to_padindex

    • static inline u32* drv_gpio_padmode_to_padindex(u32 mode)

      功能:通过padmode获取padindex

      参数:

      参数 说明
      mode 所要获取的padmode编号,编号请参考padmux.h

      返回值:

      返回值 说明
      u32* 配置为该padmode的所有padindex

    6.30. drv_gpio_get_reg_cfg

    • static inline u8 drv_gpio_get_reg_cfg(u8 gpio_index, void* reg_cfg)

      功能:得到gpio寄存器配置

      参数:

      参数 说明
      gpio_index 所要获取的gpio引脚编号,引脚编号请参考gpio.h
      reg_cfg 存储要获取的reg_cfg

      返回值:

      返回值 说明
      u8 0:成功
      1:引脚超出范围,或者引脚未设定成gpio mode

    7. FAQ

    参考GPIO FAQ