pinctrl
Pinctrl(引脚控制)模块提供引脚复用模式配置、驱动能力设置、上下拉配置、输入使能、施密特触发、压摆率控制以及低功耗挂起/恢复等功能。该模块通过 HAL (Hardware Abstraction Layer) 层函数指针实现硬件抽象,支持中断安全操作。
头文件清单
Functions
| 接口名称 | 功能简述 |
|---|---|
| uapi_pin_init | 初始化Pinctrl模块 |
| uapi_pin_deinit | 去初始化Pinctrl模块 |
| uapi_pin_set_mode | 设置引脚复用模式 |
| uapi_pin_get_mode | 获取引脚复用模式 |
| uapi_pin_set_ds | 设置引脚驱动能力 |
| uapi_pin_get_ds | 获取引脚驱动能力 |
| uapi_pin_set_pull | 设置引脚上下拉 |
| uapi_pin_get_pull | 获取引脚上下拉状态 |
| uapi_pin_set_ie | 设置引脚输入使能状态 |
| uapi_pin_get_ie | 获取引脚输入使能状态 |
| uapi_pin_set_slp_ie | 设置CPU深睡时的引脚输入使能状态 |
| uapi_pin_get_slp_ie | 获取CPU深睡时引脚输入使能状态 |
| uapi_pin_set_st | 设置引脚施密特触发状态 |
| uapi_pin_get_st | 获取引脚施密特触发状态 |
| uapi_pin_set_sl | 设置引脚压摆率控制状态 |
| uapi_pin_get_sl | 获取引脚压摆率控制状态 |
| uapi_pin_suspend | 挂起PINCTRL |
| uapi_pin_resume | 恢复PINCTRL |
uapi_pin_init
功能说明
- 初始化Pinctrl模块,注册HAL (Hardware Abstraction Layer) 层函数指针
- 该函数应在本模块其他函数被调用前执行
- 可重复调用,每次调用重新注册HAL函数指针
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
uapi_pin_deinit
功能说明
- 去初始化Pinctrl模块,注销HAL层函数指针
- 调用后本模块其他接口将不可用,需重新调用uapi_pin_init初始化
- 可重复调用
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
uapi_pin_set_mode
功能说明
- 设置引脚复用模式,将指定引脚配置为相应的功能模式
- 引脚不支持所设置的复用模式时返回ERRCODE_PIN_MODE_NO_FUNC
- 中断安全,内部通过中断锁保护寄存器操作
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
| mode | pin_mode_t | 复用模式,参考pin_mode_t | PIN_MODE_0(0)、PIN_MODE_1(1)、PIN_MODE_2(2)、PIN_MODE_3(3) |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x0) | 成功 | 引脚复用模式设置成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
uapi_pin_get_mode
功能说明
- 获取引脚当前复用模式
- 中断安全,内部通过中断锁保护寄存器操作
- 模块未初始化时返回PIN_MODE_MAX
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| PIN_MODE_0(0) | 复用模式0 | 引脚当前配置为模式0 |
| PIN_MODE_1(1) | 复用模式1 | 引脚当前配置为模式1 |
| PIN_MODE_2(2) | 复用模式2 | 引脚当前配置为模式2 |
| PIN_MODE_3(3) | 复用模式3 | 引脚当前配置为模式3 |
| PIN_MODE_MAX | 无效值 | 引脚编号无效或模块未初始化 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
uapi_pin_set_ds
功能说明
- 设置引脚驱动能力
- 中断安全,内部通过中断锁保护寄存器操作
- 驱动能力值需在有效范围内,超出范围返回ERRCODE_PIN_INVALID_PARAMETER
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
| ds | pin_drive_strength_t | 驱动能力,参考pin_drive_strength_t | PIN_DS_0(0)、PIN_DS_1(1)、PIN_DS_2(2)、PIN_DS_3(3) |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x0) | 成功 | 驱动能力设置成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
uapi_pin_get_ds
功能说明
- 获取引脚当前驱动能力
- 中断安全,内部通过中断锁保护寄存器操作
- 模块未初始化时返回PIN_DS_MAX
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| PIN_DS_0(0) | 驱动能力等级0 | 引脚当前驱动能力为等级0 |
| PIN_DS_1(1) | 驱动能力等级1 | 引脚当前驱动能力为等级1 |
| PIN_DS_2(2) | 驱动能力等级2 | 引脚当前驱动能力为等级2 |
| PIN_DS_3(3) | 驱动能力等级3 | 引脚当前驱动能力为等级3 |
| PIN_DS_MAX | 无效值 | 引脚编号无效或模块未初始化 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
uapi_pin_set_pull
功能说明
- 设置引脚上下拉配置
- 中断安全,内部通过中断锁保护寄存器操作
- 上下拉类型需在有效范围内,超出范围返回ERRCODE_PIN_INVALID_PARAMETER
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
| pull_type | pin_pull_t | 上下拉类型,参考pin_pull_t | PIN_PULL_NONE(0)、PIN_PULL_DOWN(1)、PIN_PULL_UP(2) |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x0) | 成功 | 上下拉设置成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
uapi_pin_get_pull
功能说明
- 获取引脚当前上下拉状态
- 中断安全,内部通过中断锁保护寄存器操作
- 模块未初始化时返回PIN_PULL_MAX
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| PIN_PULL_NONE(0) | 无上下拉 | 引脚当前未配置上下拉 |
| PIN_PULL_DOWN(1) | 下拉 | 引脚当前配置为下拉 |
| PIN_PULL_UP(2) | 上拉 | 引脚当前配置为上拉 |
| PIN_PULL_MAX | 无效值 | 引脚编号无效或模块未初始化 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
uapi_pin_set_ie
功能说明
- 设置引脚输入使能状态
- 中断安全,内部通过中断锁保护寄存器操作
- 输入使能状态需在有效范围内,超出范围返回ERRCODE_PIN_INVALID_PARAMETER
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
| ie | pin_input_enable_t | 输入使能状态,参考pin_input_enable_t | PIN_IE_DISABLE(0)、PIN_IE_ENABLE(1) |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x0) | 成功 | 输入使能设置成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_IE | 功能宏 | 支持引脚输入使能功能 | n |
uapi_pin_get_ie
功能说明
- 获取引脚当前输入使能状态
- 中断安全,内部通过中断锁保护寄存器操作
- 模块未初始化时返回PIN_IE_MAX
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| PIN_IE_DISABLE(0) | 输入禁用 | 引脚当前输入被禁用 |
| PIN_IE_ENABLE(1) | 输入使能 | 引脚当前输入已使能 |
| PIN_IE_MAX | 无效值 | 引脚编号无效或模块未初始化 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_IE | 功能宏 | 支持引脚输入使能功能 | n |
uapi_pin_set_slp_ie
功能说明
- 设置CPU深睡时的引脚输入使能状态
- 中断安全,内部通过中断锁保护寄存器操作
- 引脚编号和输入使能值需在有效范围内,超出范围返回ERRCODE_PIN_INVALID_PARAMETER
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | uint32_t | 引脚编号 | 0 ~ PIN_MAX_NUMBER-1 |
| ie | uint8_t | 输入使能状态 | 0(禁用)、1(使能) |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x0) | 成功 | 深睡输入使能设置成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_SLP_IE | 功能宏 | 支持CPU深睡时引脚输入使能功能 | n |
uapi_pin_get_slp_ie
功能说明
- 获取CPU深睡时引脚的输入使能状态
- 中断安全,内部通过中断锁保护寄存器操作
- 模块未初始化时返回PIN_IE_MAX
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | uint32_t | 引脚编号 | 0 ~ PIN_MAX_NUMBER-1 |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| PIN_IE_DISABLE(0) | 输入禁用 | 深睡时引脚输入被禁用 |
| PIN_IE_ENABLE(1) | 输入使能 | 深睡时引脚输入已使能 |
| PIN_IE_MAX | 无效值 | 引脚编号无效或模块未初始化 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_SLP_IE | 功能宏 | 支持CPU深睡时引脚输入使能功能 | n |
uapi_pin_set_st
功能说明
- 设置引脚施密特触发状态
- 中断安全,内部通过中断锁保护寄存器操作
- 施密特触发状态需在有效范围内,超出范围返回ERRCODE_PIN_INVALID_PARAMETER
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
| st | pin_schmitt_trigger_t | 施密特触发状态,参考pin_schmitt_trigger_t | PIN_ST_DISABLE(0)、PIN_ST_ENABLE(1) |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x0) | 成功 | 施密特触发设置成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_ST | 功能宏 | 支持引脚施密特触发功能 | n |
uapi_pin_get_st
功能说明
- 获取引脚当前施密特触发状态
- 中断安全,内部通过中断锁保护寄存器操作
- 模块未初始化时返回PIN_ST_MAX
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| PIN_ST_DISABLE(0) | 施密特触发禁用 | 引脚当前施密特触发被禁用 |
| PIN_ST_ENABLE(1) | 施密特触发使能 | 引脚当前施密特触发已使能 |
| PIN_ST_MAX | 无效值 | 引脚编号无效或模块未初始化 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_ST | 功能宏 | 支持引脚施密特触发功能 | n |
uapi_pin_set_sl
功能说明
- 设置引脚压摆率控制状态
- 中断安全,内部通过中断锁保护寄存器操作
- 压摆率值需在有效范围内,超出范围返回ERRCODE_PIN_INVALID_PARAMETER
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
| sl | pin_slew_rate_t | 压摆率控制状态,参考pin_slew_rate_t | 小于PIN_SL_MAX |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x0) | 成功 | 压摆率设置成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_SL | 功能宏 | 支持引脚压摆率控制功能 | n |
uapi_pin_get_sl
功能说明
- 获取引脚当前压摆率控制状态
- 中断安全,内部通过中断锁保护寄存器操作
- 模块未初始化时返回PIN_SL_MAX
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| pin | pin_t | 引脚编号,参考pin_t | 0 ~ PIN_NONE-1 |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| pin_slew_rate_t枚举值 | 压摆率控制状态 | 引脚当前压摆率控制状态 |
| PIN_SL_MAX | 无效值 | 引脚编号无效或模块未初始化 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_SL | 功能宏 | 支持引脚压摆率控制功能 | n |
uapi_pin_suspend
功能说明
- 挂起PINCTRL模块,进入低功耗模式
- 调用后引脚配置保存,模块进入挂起状态
- HAL函数指针未注册时直接返回ERRCODE_SUCC
前置条件
- 模块已通过uapi_pin_init()初始化完成
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| arg | uintptr_t | 挂起所需要的参数 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x0) | 成功 | 挂起成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_LPM | 功能宏 | 支持PINCTRL低功耗模式功能 | n |
uapi_pin_resume
功能说明
- 恢复PINCTRL模块,从低功耗模式恢复
- 调用后引脚配置恢复,模块恢复正常工作状态
- HAL函数指针未注册时直接返回ERRCODE_SUCC
前置条件
- 模块已通过uapi_pin_init()初始化完成
- 模块已通过uapi_pin_suspend()挂起
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| arg | uintptr_t | 恢复所需要的参数 | - |
返回值
| 返回值 | 文字含义 | 触发场景 |
|---|---|---|
| ERRCODE_SUCC(0x0) | 成功 | 恢复成功 |
| Other | 其他错误码,参考errcode_t | 执行失败 |
Kconfig配置
| 配置项 | 宏类型 | 说明 | 默认值 |
|---|---|---|---|
| CONFIG_DRIVER_SUPPORT_PINCTRL | 编译参与宏 | 控制pinctrl模块参与编译 | y |
| CONFIG_PINCTRL_SUPPORT_LPM | 功能宏 | 支持PINCTRL低功耗模式功能 | n |
Type definitions
errcode_t
使用说明
用于uapi_pin_set_mode、uapi_pin_set_ds、uapi_pin_set_pull、uapi_pin_set_ie、uapi_pin_set_slp_ie、uapi_pin_set_st、uapi_pin_set_sl、uapi_pin_suspend、uapi_pin_resume的返回值类型
Enumerations
pin_t
typedef enum {
S_EGPIO0 = 0, // QSPI0_D0
S_EGPIO1 = 1, // QSPI0_D1
S_EGPIO2 = 2, // QSPI0_D2
S_EGPIO3 = 3, // QSPI0_D3
S_EGPIO4 = 4, // QSPI0_CLK
S_EGPIO5 = 5, // QSPI0_CS
S_EGPIO6 = 6, // QSPI3_CLK
S_EGPIO7 = 7, // QSPI3_CS
S_EGPIO8 = 8, // QSPI3_D0
S_EGPIO9 = 9, // QSPI3_D1
S_EGPIO10 = 10, // QSPI3_D2
S_EGPIO11 = 11, // QSPI3_D3
S_EGPIO12 = 12, //
S_EGPIO13 = 13, //
S_EGPIO14 = 14, //
S_EGPIO15 = 15, //
S_EGPIO16 = 16, //
S_EGPIO17 = 17, //
S_EGPIO18 = 18, //
S_EGPIO19 = 19, //
S_EGPIO20 = 20, //
S_EGPIO21 = 21, //
S_EGPIO22 = 22, //
S_EGPIO23 = 23, //
S_EGPIO24 = 24, //
S_EGPIO25 = 25, //
S_EGPIO26 = 26, //
S_EGPIO27 = 27, //
S_EGPIO28 = 28, //
S_EGPIO29 = 29, //
S_EGPIO30 = 30, //
S_EGPIO31 = 31, //
S_MGPIO0 = 32, // UART0_TXD
S_MGPIO1 = 33, // UART0_RXD
S_MGPIO2 = 34, // UART0_CTS
S_MGPIO3 = 35, // UART0_RTS
S_MGPIO4 = 36, // I2C0_SCL
S_MGPIO5 = 37, // I2C0_SDA
S_MGPIO6 = 38, // I2C1_SCL
S_MGPIO7 = 39, // I2C1_SDA
S_MGPIO8 = 40, // I2C2_SCL
S_MGPIO9 = 41, // I2C2_SDA
S_MGPIO10 = 42, // I2C3_SCL
S_MGPIO11 = 43, // I2C3_SDA
S_MGPIO12 = 44, // SPI0_DI
S_MGPIO13 = 45, // SPI0_DO
S_MGPIO14 = 46, // SPI0_CLK
S_MGPIO15 = 47, // SPI0_CS
S_MGPIO16 = 48, // SPI0_CS1
S_MGPIO17 = 49, // UART2_TXD
S_MGPIO18 = 50, // UART2_RXD
S_MGPIO19 = 51, // UART1_TXD
S_MGPIO20 = 52, // UART1_RXD
S_MGPIO21 = 53, // UART1_CTS
S_MGPIO22 = 54, // UART1_RTS
S_MGPIO23 = 55, // SPI1_DI
S_MGPIO24 = 56, // SPI1_DO
S_MGPIO25 = 57, // SPI1_CLK
S_MGPIO26 = 58, // SPI1_CS
S_HGPIO0 = 59, // EMMC_D0
S_HGPIO1 = 60, // EMMC_D1
S_HGPIO2 = 61, // EMMC_D2
S_HGPIO3 = 62, // EMMC_D3
S_HGPIO4 = 63, // EMMC_D4
S_HGPIO5 = 64, // EMMC_D5
S_HGPIO6 = 65, // EMMC_D6
S_HGPIO7 = 66, // EMMC_D7
S_HGPIO8 = 67, // EMMC_CMD
S_HGPIO9 = 68, // EMMC_CLK
S_HGPIO10 = 69, // SDIO_D0
S_HGPIO11 = 70, // SDIO_D1
S_HGPIO12 = 71, // SDIO_D2
S_HGPIO13 = 72, // SDIO_D3
S_HGPIO14 = 73, // SDIO_CLK
S_HGPIO15 = 74, // SDIO_CMD
S_AGPIO0 = 75, //
S_AGPIO1 = 76, //
S_AGPIO2 = 77, //
S_AGPIO3 = 78, //
S_AGPIO4 = 79, //
S_AGPIO5 = 80, //
S_AGPIO6 = 81, //
S_AGPIO7 = 82, //
S_AGPIO8 = 83, //
S_AGPIO9 = 84, //
S_AGPIO10 = 85, //
S_AGPIO11 = 86, //
S_AGPIO12 = 87, //
S_AGPIO13 = 88, //
S_AGPIO14 = 89, //
S_AGPIO15 = 90, //
S_AGPIO16 = 91, //
S_AGPIO17 = 92, //
S_AGPIO18 = 93, //
S_AGPIO19 = 94, //
S_AGPIO20 = 95, //
S_AGPIO21 = 96, //
S_AGPIO22 = 97, //
S_AGPIO23 = 98, //
S_AGPIO24 = 99, //
S_AGPIO25 = 100, //
S_AGPIO26 = 101, //
S_AGPIO27 = 102, //
S_AGPIO28 = 103, //
S_AGPIO29 = 104, //
S_AGPIO30 = 105, //
S_AGPIO31 = 106, //
S_AGPIO32 = 107, //
S_AGPIO33 = 108, //
S_AGPIO34 = 109, //
S_UGPIO0 = 110, //
S_UGPIO1 = 111, //
PIN_NONE,
} pin_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| S_EGPIO0 ~ S_EGPIO5 | 0 ~ 5 | QSPI0引脚 |
| S_EGPIO6 ~ S_EGPIO11 | 6 ~ 11 | QSPI3引脚 |
| S_EGPIO12 ~ S_EGPIO31 | 12 ~ 31 | EGPIO通用引脚 |
| S_MGPIO0 ~ S_MGPIO3 | 32 ~ 35 | UART0引脚 |
| S_MGPIO4 ~ S_MGPIO5 | 36 ~ 37 | I2C0引脚 |
| S_MGPIO6 ~ S_MGPIO7 | 38 ~ 39 | I2C1引脚 |
| S_MGPIO8 ~ S_MGPIO9 | 40 ~ 41 | I2C2引脚 |
| S_MGPIO10 ~ S_MGPIO11 | 42 ~ 43 | I2C3引脚 |
| S_MGPIO12 ~ S_MGPIO15 | 44 ~ 47 | SPI0引脚 |
| S_MGPIO16 | 48 | SPI0_CS1 |
| S_MGPIO17 ~ S_MGPIO18 | 49 ~ 50 | UART2引脚 |
| S_MGPIO19 ~ S_MGPIO22 | 51 ~ 54 | UART1引脚 |
| S_MGPIO23 ~ S_MGPIO26 | 55 ~ 58 | SPI1引脚 |
| S_HGPIO0 ~ S_HGPIO9 | 59 ~ 68 | EMMC引脚 |
| S_HGPIO10 ~ S_HGPIO15 | 69 ~ 74 | SDIO引脚 |
| S_AGPIO0 ~ S_AGPIO34 | 75 ~ 109 | AGPIO通用引脚 |
| S_UGPIO0 ~ S_UGPIO1 | 110 ~ 111 | UGPIO引脚 |
| PIN_NONE | 112 | 无效引脚 |
pin_mode_t
typedef enum {
PIN_MODE_0 = 0,
PIN_MODE_1 = 1,
PIN_MODE_2 = 2,
PIN_MODE_3 = 3,
PIN_MODE_MAX
} pin_mode_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PIN_MODE_0 | 0 | 复用模式0 |
| PIN_MODE_1 | 1 | 复用模式1 |
| PIN_MODE_2 | 2 | 复用模式2 |
| PIN_MODE_3 | 3 | 复用模式3 |
| PIN_MODE_MAX | 4 | 无效值 |
pin_drive_strength_t
typedef enum {
PIN_DS_0 = 0,
PIN_DS_1 = 1,
PIN_DS_2 = 2,
PIN_DS_3 = 3,
PIN_DS_4 = 3,
PIN_DS_5 = 3,
PIN_DS_6 = 3,
PIN_DS_7 = 3,
PIN_DS_8 = 3,
PIN_DS_9 = 3,
PIN_DS_10 = 3,
PIN_DS_11 = 3,
PIN_DS_12 = 3,
PIN_DS_13 = 3,
PIN_DS_14 = 3,
PIN_DS_15 = 3,
PIN_DS_MAX
} pin_drive_strength_t;
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PIN_DS_0 | 0 | 驱动能力等级0 |
| PIN_DS_1 | 1 | 驱动能力等级1 |
| PIN_DS_2 | 2 | 驱动能力等级2 |
| PIN_DS_3 | 3 | 驱动能力等级3 |
| PIN_DS_4 ~ PIN_DS_15 | 3 | 驱动能力等级3(与PIN_DS_3等效) |
| PIN_DS_MAX | 4 | 无效值 |
pin_pull_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PIN_PULL_NONE | 0 | 无上下拉 |
| PIN_PULL_DOWN | 1 | 下拉 |
| PIN_PULL_UP | 2 | 上拉 |
| PIN_PULL_MAX | 3 | 无效值 |
pin_input_enable_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PIN_IE_DISABLE | 0 | 输入禁用 |
| PIN_IE_ENABLE | 1 | 输入使能 |
| PIN_IE_MAX | 2 | 无效值 |
pin_schmitt_trigger_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PIN_ST_DISABLE | 0 | 施密特触发禁用 |
| PIN_ST_ENABLE | 1 | 施密特触发使能 |
| PIN_ST_MAX | 2 | 无效值 |
pin_slew_rate_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PIN_SL_DISABLE | 0 | 压摆率控制禁用 |
| PIN_SL_ENABLE | 1 | 压摆率控制使能 |
| PIN_SL_MAX | 2 | 无效值 |