API GUIDE / GPIO / OVERVIEW
G32S10 GPIO API 概述
模块概述:本文档定义 G32S10 SDK 当前 GPIO 模块的正式接口,覆盖以下两层:
1. 文档范围
本文档定义 G32S10 SDK 当前 GPIO 模块的正式接口,覆盖以下两层:
HAL GPIO:面向 BSP、驱动适配层和业务模块的功能级接口LL GPIO:面向寄存器与位操作的低层接口
本文档基于以下实现与头文件编写:
code/include/drivers/g32s10/gpio/hal_gpio.hcode/include/drivers/g32s10/gpio/ll_gpio.hcode/include/drivers/g32s10/gpio/gpio_regs.hcode/drivers/g32s10/gpio/hal_gpio.c
2. 分层关系
分层职责如下:
HAL GPIO封装 GPIO 功能选择、属性配置、初始化生命周期和中断管理
维护软件态 pin 占用信息与中断上下文
LL GPIO提供寄存器位级访问入口
不维护软件状态,不处理业务语义
gpio_regs.h定义 GPIO 实例、pin mask、寄存器布局和基础辅助函数
3. 当前实现约束与行为说明
3.1 GPIOE 的 pad 属性能力受限
当前实现中:
GPIOE不支持drive_strengthGPIOE不支持speedGPIOE不支持schmitt
因此:
对
GPIOE配置非默认驱动能力会返回IM_ERR_UNSUPPORTED对
GPIOE配置HAL_GPIO_SPEED_HIGH会返回IM_ERR_UNSUPPORTED对
GPIOE使能schmitt = true会返回IM_ERR_UNSUPPORTED
3.2 hal_gpio_write_pin() 与 hal_gpio_toggle_pin() 的模式保护
hal_gpio_write_pin()与hal_gpio_toggle_pin()会检查目标 pin 是否已处于 GPIO 输出模式对复用功能 pin、输入 pin 或中断 pin 执行此类操作会返回
IM_ERR_UNSUPPORTED
4. 推荐关注的错误码
| 错误码 | 含义 |
|---|---|
IM_OK | 操作成功 |
IM_ERR_INVALID_PARAM | 输入参数非法,或参数组合不满足接口约束 |
IM_ERR_UNSUPPORTED | 当前端口能力、当前功能模式或当前寄存器状态不支持目标操作 |
IM_ERR_NOT_READY | pin 未登记,或上下文尚未建立 |
IM_ERR_BUSY | 资源已被占用 |