1.7 KiB
1.7 KiB
LED模块
功能描述
LED模块用于控制板载LED的开关和状态切换,提供了简单易用的API接口。
依赖关系
- HAL层:hal_gpio
接口说明
数据结构
led_config_t
LED配置结构体,用于初始化LED模块
typedef struct {
hal_gpio_port_t gpio_port; /*!< GPIO端口 */
hal_gpio_pin_t gpio_pin; /*!< GPIO引脚 */
} led_config_t;
led_t
LED实例结构体,用于管理LED状态
typedef struct {
led_config_t config; /*!< LED配置 */
uint8_t state; /*!< 当前LED状态(0: 关闭,1: 开启) */
} led_t;
函数接口
led_init
void led_init(led_t *led, const led_config_t *config);
初始化LED模块
参数:
- led: LED实例指针
- config: LED配置结构体指针
返回值:无
led_on
void led_on(led_t *led);
开启LED
参数:
- led: LED实例指针
返回值:无
led_off
void led_off(led_t *led);
关闭LED
参数:
- led: LED实例指针
返回值:无
led_toggle
void led_toggle(led_t *led);
切换LED状态
参数:
- led: LED实例指针
返回值:无
led_get_state
uint8_t led_get_state(const led_t *led);
获取LED当前状态
参数:
- led: LED实例指针
返回值:
- 0: LED关闭
- 1: LED开启
使用示例
/* LED配置 */
static led_config_t led_config = {
.gpio_port = BSP_LED_PORT,
.gpio_pin = BSP_LED_PIN
};
/* LED实例 */
static led_t led;
/* 初始化LED */
led_init(&led, &led_config);
/* 开启LED */
led_on(&led);
/* 延迟500ms */
delay_ms(500);
/* 关闭LED */
led_off(&led);
/* 切换LED状态 */
led_toggle(&led);
/* 获取LED状态 */
uint8_t state = led_get_state(&led);