xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_hal_gpio.h
浏览该文件的文档.
1
12
13#ifndef __XT_HAL_GPIO_H__
14#define __XT_HAL_GPIO_H__
15
16/* ==================== [Includes] ========================================== */
17
18#include "xt_hal_internal.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
30
31/* ==================== [Defines] =========================================== */
32
33#define XT_HAL_GPIO_INVALID_ID (0xFF)
34
35/* ==================== [Typedefs] ========================================== */
36
44
51typedef void (*xt_hal_gpio_cb_t)(uint8_t io, uint32_t event_id);
52
53/* ==================== [Global Prototypes] ================================= */
54
55/*
56 B0: input/output: 0: input, 1: output
57 B1: pullup
58 B2: pulldown
59 B3: output open-drain: 0: push-pull, 1: open-drain; only for output
60 B4: rising edge interrupt: 0: disable, 1: enable; only for input
61 B5: falling edge interrupt: 0: disable, 1: enable; only for input
62 B6: wakeup: 0: disable, 1: enable; only for input
63 B7: high level interrupt: 0: disable, 1: enable; only for input
64 B8: low level interrupt: 0: disable, 1: enable; only for input
65 */
66#define XT_HAL_GPIO_INPUT 0x00
67#define XT_HAL_GPIO_OUTPUT 0x01
68#define XT_HAL_GPIO_PULLUP 0x02
69#define XT_HAL_GPIO_PULLDOWN 0x04
70#define XT_HAL_GPIO_OD 0x08
71#define XT_HAL_GPIO_RISING_EDGE 0x10
72#define XT_HAL_GPIO_FALLING_EDGE 0x20
73#define XT_HAL_GPIO_BOTH_EDGE (XT_HAL_GPIO_RISING_EDGE | XT_HAL_GPIO_FALLING_EDGE)
74#define XT_HAL_GPIO_WAKEUP 0x40
75#define XT_HAL_GPIO_HIGH_LEVEL 0x80
76#define XT_HAL_GPIO_LOW_LEVEL 0x0100
77#define XT_HAL_GPIO_BOTH_LEVEL (XT_HAL_GPIO_HIGH_LEVEL | XT_HAL_GPIO_LOW_LEVEL)
78
87xt_err_t xt_hal_gpio_setup(uint8_t io, uint32_t mode, xt_hal_gpio_cb_t cb);
88
96
97// TODO
98// void xt_hal_gpio_debounce(uint8_t io, uint8_t debounce_ms);
99
106void xt_hal_gpio_set_level(uint8_t io, uint8_t level);
107
114uint8_t xt_hal_gpio_get_level(uint8_t io);
115
116/* ==================== [Macros] ============================================ */
117 /* xt_hal_gpio */
119
120#ifdef __cplusplus
121} /* extern "C" */
122#endif
123
124#endif /* __XT_HAL_GPIO_H__ */
int32_t xt_err_t
错误码类型
void xt_hal_gpio_set_level(uint8_t io, uint8_t level)
设置 GPIO 输出电平
uint8_t xt_hal_gpio_get_level(uint8_t io)
获取 GPIO 当前电平
xt_hal_gpio_event_id
GPIO 事件 ID 枚举
void(* xt_hal_gpio_cb_t)(uint8_t io, uint32_t event_id)
GPIO 回调函数类型定义
xt_err_t xt_hal_gpio_close(uint8_t io)
关闭 GPIO
xt_err_t xt_hal_gpio_setup(uint8_t io, uint32_t mode, xt_hal_gpio_cb_t cb)
初始化 GPIO
@ XT_HAL_GPIO_EVENT_INT
@ XT_HAL_GPIO_EVENT_WAKEUP
XTINY HAL 内部公共头文件