# 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);
```