API GUIDE / GPIO / LL
G32S10 GPIO LL 接口
LL 层接口:说明:
1. LL 与基础辅助接口规范
说明:
gpio_regs.h仅定义 GPIO 寄存器布局、pin mask、端口实例和基础常量所有
ll_gpio_*inline 辅助接口统一定义在ll_gpio.h
1.1 基础辅助接口
1.1.1 ll_gpio_is_instance
bool ll_gpio_is_instance(const gpio_regs_t *gpiox);
功能说明: 判断指针是否为当前 SDK 支持的 GPIO 端口实例。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
true | gpiox 为 GPIOA~`GPIOE` 之一 |
false | 不是受支持的 GPIO 实例 |
1.1.2 ll_gpio_is_pin_mask_valid
bool ll_gpio_is_pin_mask_valid(uint32_t pin_mask);
功能说明: 判断 pin mask 是否非空。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pin_mask | uint32_t | 输入 | GPIO pin bitmask |
返回值表:
| 返回值 | 说明 |
|---|---|
true | 至少有一个 pin bit 被置位 |
false | pin_mask 为 0 |
1.1.3 ll_gpio_is_single_pin_mask
bool ll_gpio_is_single_pin_mask(uint32_t pin_mask);
功能说明: 判断 pin mask 是否只选择一个 pin。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pin_mask | uint32_t | 输入 | GPIO pin bitmask |
返回值表:
| 返回值 | 说明 |
|---|---|
true | pin_mask 恰有一个 bit 置位 |
false | pin_mask 为空或包含多个 bit |
1.1.4 ll_gpio_pin_mask_from_index
uint32_t ll_gpio_pin_mask_from_index(uint32_t pin_index);
功能说明: 根据 pin 序号生成对应的 pin mask。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
pin_index | uint32_t | 输入 | 端口内 pin 序号,范围 0~`31` |
返回值表:
| 返回值 | 说明 |
|---|---|
非 0 uint32_t | 对应 pin 的 bitmask |
0 | pin_index 超出有效范围 |
1.2 Shadow 控制接口
1.2.1 ll_gpio_enable_shadow
void ll_gpio_enable_shadow(gpio_regs_t *gpiox);
功能说明: 使能一个 GPIO 端口的 shadow 更新模式。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码;调用方需保证 gpiox 有效 |
1.2.2 ll_gpio_disable_shadow
void ll_gpio_disable_shadow(gpio_regs_t *gpiox);
功能说明: 关闭一个 GPIO 端口的 shadow 更新模式。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码;调用方需保证 gpiox 有效 |
1.2.3 ll_gpio_trigger_shadow_update
void ll_gpio_trigger_shadow_update(gpio_regs_t *gpiox);
功能说明: 触发一次 shadow 寄存器更新提交。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码;调用方需保证 gpiox 有效 |
1.3 功能位与中断选择接口
1.3.1 ll_gpio_enable_interrupt_select
void ll_gpio_enable_interrupt_select(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明:
为指定 pin 置位 interrupt_select,使其进入中断功能选择路径。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.3.2 ll_gpio_disable_interrupt_select
void ll_gpio_disable_interrupt_select(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明:
为指定 pin 清除 interrupt_select 位。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.3.3 ll_gpio_set_pin_mask
void ll_gpio_set_pin_mask(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明:
为指定 pin 置位 mask 位。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.3.4 ll_gpio_clear_pin_mask
void ll_gpio_clear_pin_mask(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明:
为指定 pin 清除 mask 位。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.3.5 ll_gpio_set_pattern_1
void ll_gpio_set_pattern_1(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明:
为指定 pin 置位 pattern_1 位。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.3.6 ll_gpio_clear_pattern_1
void ll_gpio_clear_pattern_1(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明:
为指定 pin 清除 pattern_1 位。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.3.7 ll_gpio_set_pattern_0
void ll_gpio_set_pattern_0(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明:
为指定 pin 置位 pattern_0 位。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.3.8 ll_gpio_clear_pattern_0
void ll_gpio_clear_pattern_0(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明:
为指定 pin 清除 pattern_0 位。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.4 数据读写接口
1.4.1 ll_gpio_write_high
void ll_gpio_write_high(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 将指定 pin 输出置高。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.4.2 ll_gpio_write_low
void ll_gpio_write_low(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 将指定 pin 输出置低。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.4.3 ll_gpio_read_input_port
uint32_t ll_gpio_read_input_port(const gpio_regs_t *gpiox);
功能说明: 读取一个 GPIO 端口当前全部 pin 的输入采样位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 pin 寄存器当前值 |
1.5 Pull 配置接口
1.5.1 ll_gpio_enable_pull_up
void ll_gpio_enable_pull_up(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 使能指定 pin 的 pull-up。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.5.2 ll_gpio_disable_pull_up
void ll_gpio_disable_pull_up(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 关闭指定 pin 的 pull-up。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.5.3 ll_gpio_enable_pull_down
void ll_gpio_enable_pull_down(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 使能指定 pin 的 pull-down。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.5.4 ll_gpio_disable_pull_down
void ll_gpio_disable_pull_down(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 关闭指定 pin 的 pull-down。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.6 Drive Strength 配置接口
1.6.1 ll_gpio_enable_drive_strength_bit_0
void ll_gpio_enable_drive_strength_bit_0(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 为指定 pin 置位 drive strength bit0。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.6.2 ll_gpio_disable_drive_strength_bit_0
void ll_gpio_disable_drive_strength_bit_0(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 为指定 pin 清除 drive strength bit0。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.6.3 ll_gpio_enable_drive_strength_bit_1
void ll_gpio_enable_drive_strength_bit_1(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 为指定 pin 置位 drive strength bit1。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.6.4 ll_gpio_disable_drive_strength_bit_1
void ll_gpio_disable_drive_strength_bit_1(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 为指定 pin 清除 drive strength bit1。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.7 Slew Rate 配置接口
1.7.1 ll_gpio_set_slew_rate_fast
void ll_gpio_set_slew_rate_fast(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 将指定 pin 配置为高速 slew rate。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.7.2 ll_gpio_set_slew_rate_slow
void ll_gpio_set_slew_rate_slow(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 将指定 pin 配置为低速 slew rate。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.8 Schmitt 配置接口
1.8.1 ll_gpio_enable_schmitt
void ll_gpio_enable_schmitt(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 使能指定 pin 的 Schmitt trigger。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.8.2 ll_gpio_disable_schmitt
void ll_gpio_disable_schmitt(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 关闭指定 pin 的 Schmitt trigger。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.9 中断标志与状态读取接口
1.9.1 ll_gpio_clear_interrupt_flag
void ll_gpio_clear_interrupt_flag(gpio_regs_t *gpiox, uint32_t pin_mask);
功能说明: 清除指定 pin 的 pending interrupt flag。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | gpio_regs_t * | 输入 | GPIO 端口基地址 |
pin_mask | uint32_t | 输入 | pin mask,可为多 bit |
返回值表:
| 返回值 | 说明 |
|---|---|
| 无 | 接口不返回状态码 |
1.9.2 ll_gpio_get_interrupt_select
uint32_t ll_gpio_get_interrupt_select(const gpio_regs_t *gpiox);
功能说明:
读取端口 interrupt_select 当前位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 interrupt_select 状态 |
1.9.3 ll_gpio_get_interrupt_flags
uint32_t ll_gpio_get_interrupt_flags(const gpio_regs_t *gpiox);
功能说明: 读取端口 pending interrupt flag 位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 interrupt_flag 状态 |
1.9.4 ll_gpio_get_pin_mask_bits
uint32_t ll_gpio_get_pin_mask_bits(const gpio_regs_t *gpiox);
功能说明:
读取端口 mask 当前位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 mask 状态 |
1.9.5 ll_gpio_get_pattern_1_bits
uint32_t ll_gpio_get_pattern_1_bits(const gpio_regs_t *gpiox);
功能说明:
读取端口 pattern_1 当前位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 pattern_1 状态 |
1.9.6 ll_gpio_get_pattern_0_bits
uint32_t ll_gpio_get_pattern_0_bits(const gpio_regs_t *gpiox);
功能说明:
读取端口 pattern_0 当前位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 pattern_0 状态 |
1.9.7 ll_gpio_get_interrupt_mask
uint32_t ll_gpio_get_interrupt_mask(const gpio_regs_t *gpiox);
功能说明: 读取端口当前中断 mask 位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 mask 寄存器当前值 |
补充说明:
当前实现中该接口与
ll_gpio_get_pin_mask_bits()返回同一寄存器值,但在语义上用于中断 mask 解释
1.9.8 ll_gpio_get_pull_up_bits
uint32_t ll_gpio_get_pull_up_bits(const gpio_regs_t *gpiox);
功能说明: 读取端口 pull-up 使能位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 pull_up 状态 |
1.9.9 ll_gpio_get_pull_down_bits
uint32_t ll_gpio_get_pull_down_bits(const gpio_regs_t *gpiox);
功能说明: 读取端口 pull-down 使能位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 pull_down 状态 |
1.9.10 ll_gpio_get_drive_strength_bit_0_bits
uint32_t ll_gpio_get_drive_strength_bit_0_bits(const gpio_regs_t *gpiox);
功能说明: 读取端口 drive strength bit0 位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 drive_strength_bit_0 状态 |
1.9.11 ll_gpio_get_drive_strength_bit_1_bits
uint32_t ll_gpio_get_drive_strength_bit_1_bits(const gpio_regs_t *gpiox);
功能说明: 读取端口 drive strength bit1 位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 drive_strength_bit_1 状态 |
1.9.12 ll_gpio_get_slew_rate_bits
uint32_t ll_gpio_get_slew_rate_bits(const gpio_regs_t *gpiox);
功能说明: 读取端口 slew rate 位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 slew_rate 状态 |
1.9.13 ll_gpio_get_schmitt_bits
uint32_t ll_gpio_get_schmitt_bits(const gpio_regs_t *gpiox);
功能说明: 读取端口 Schmitt trigger 使能位图。
参数表:
| 参数 | 类型 | 方向 | 说明 |
|---|---|---|---|
gpiox | const gpio_regs_t * | 输入 | GPIO 端口基地址 |
返回值表:
| 返回值 | 说明 |
|---|---|
uint32_t 位图 | 返回端口 schmitt 状态 |