|
xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
|
版本:0.1 | 日期:2026-07-03 | 路径: platforms/components/xtiny/xt_hal/
xt_hal_gpio 是 XTINY HAL 层的 GPIO 驱动模块,提供引脚输入/输出配置、电平读写、中断/唤醒回调等能力。所有平台都必须实现此模块。
| 依赖 | 用途 |
|---|---|
| xt_hal_internal.h | HAL 内部类型与工具宏 |
setup 的 mode 参数是以下标志的按位或组合:
| 标志 | 位 | 说明 |
|---|---|---|
| XT_HAL_GPIO_INPUT | B0 | 输入模式 |
| XT_HAL_GPIO_OUTPUT | B0 | 输出模式 |
| XT_HAL_GPIO_PULLUP | B1 | 上拉 |
| XT_HAL_GPIO_PULLDOWN | B2 | 下拉 |
| XT_HAL_GPIO_OD | B3 | 开漏输出(仅输出模式) |
| XT_HAL_GPIO_RISING_EDGE | B4 | 上升沿中断(仅输入模式) |
| XT_HAL_GPIO_FALLING_EDGE | B5 | 下降沿中断(仅输入模式) |
| XT_HAL_GPIO_WAKEUP | B6 | 唤醒使能(仅输入模式) |
| XT_HAL_GPIO_HIGH_LEVEL | B7 | 高电平中断(仅输入模式) |
| XT_HAL_GPIO_LOW_LEVEL | B8 | 低电平中断(仅输入模式) |
常用组合: XT_HAL_GPIO_BOTH_EDGE (双边沿) 、 XT_HAL_GPIO_BOTH_LEVEL (双电平)。
回调函数接收两个参数: io (引脚编号)和 event_id (事件类型):
| 事件 | 值 | 说明 |
|---|---|---|
| XT_HAL_GPIO_EVENT_INT | 0 | 普通 GPIO 中断 |
| XT_HAL_GPIO_EVENT_WAKEUP | 1 | IO 唤醒事件 |
close 会取消中断/唤醒注册、释放中断节点内存,并恢复引脚为默认输入状态(无上下拉)。如果引脚未注册中断,则仅重置引脚配置。
以下为函数签名大纲,完整的参数说明、返回值、注意事项请查看 xt_hal_gpio(GPIO 驱动) 。
| 函数签名 | 说明 |
|---|---|
| xt_err_t xt_hal_gpio_setup(uint8_t io, uint32_t mode, xt_hal_gpio_cb_t cb) | 初始化 GPIO,配置模式和回调 |
| xt_err_t xt_hal_gpio_close(uint8_t io) | 关闭 GPIO,释放资源并恢复默认状态 |
| 函数签名 | 说明 |
|---|---|
| void xt_hal_gpio_set_level(uint8_t io, uint8_t level) | 设置输出电平(0 低,1 高) |
| uint8_t xt_hal_gpio_get_level(uint8_t io) | 获取当前电平(0 低,1 高) |
| 类型签名 | 说明 |
|---|---|
| xt_hal_gpio_cb_t | 回调函数类型: void (*)(uint8_t io, uint32_t event_id) |
| enum xt_hal_gpio_event_id | 事件 ID 枚举( XT_HAL_GPIO_EVENT_INT / XT_HAL_GPIO_EVENT_WAKEUP ) |
| 行为 | 说明 |
|---|---|
| 同一 IO 不可重复 setup | 重复注册返回 XT_EBUSY |
| 中断模式不支持输出 | 同时设置 OUTPUT 和中断标志返回 XT_EINVAL |
| 中断模式必须传 cb | cb 为 NULL 返回 XT_EINVAL |
| close 恢复默认状态 | GPIO 被重置为输入、无上下拉 |
| set_level / get_level 对无效 IO 安全 | 无效 IO 静默返回(无操作或返回 0) |