Files
stm32f407ve_black/Modules/led/README.md
2026-01-22 16:36:56 +08:00

120 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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