120 lines
1.7 KiB
Markdown
120 lines
1.7 KiB
Markdown
# 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);
|
||
``` |