45 lines
1.5 KiB
C
45 lines
1.5 KiB
C
#ifndef __LED_H__
|
||
#define __LED_H__
|
||
|
||
#include "./SYSTEM/sys/sys.h"
|
||
|
||
/* LED状态枚举 - 使用枚举类型提高类型安全性 */
|
||
typedef enum {
|
||
LED_OFF = 0, /* LED熄灭 */
|
||
LED_ON = 1 /* LED点亮 */
|
||
} LED_State_t;
|
||
|
||
/* LED极性定义 */
|
||
#define LED_POLARITY_LOW_ACTIVE 0 /* 低电平有效(低电平亮) */
|
||
#define LED_POLARITY_HIGH_ACTIVE 1 /* 高电平有效(高电平亮) */
|
||
|
||
/* LED配置结构体 - 所有硬件相关参数集中在此 */
|
||
typedef struct {
|
||
GPIO_TypeDef *port; /* GPIO端口 (如: GPIOA, GPIOB, ...) */
|
||
uint16_t pin; /* GPIO引脚 (如: GPIO_PIN_0, GPIO_PIN_1, ...) */
|
||
uint8_t polarity; /* 极性:LED_POLARITY_LOW_ACTIVE 或 LED_POLARITY_HIGH_ACTIVE */
|
||
GPIO_PinState default_state; /* 默认状态:GPIO_PIN_SET 或 GPIO_PIN_RESET */
|
||
uint32_t speed; /* GPIO速度:GPIO_SPEED_FREQ_LOW/MEDIUM/HIGH */
|
||
uint32_t pull; /* 上拉下拉:GPIO_PULLUP/GPIO_PULLDOWN/GPIO_NOPULL */
|
||
} LED_Config_t;
|
||
|
||
/* LED数量定义 - 修改此值以适配不同数量的LED */
|
||
#define LED_COUNT 20
|
||
|
||
/* 函数声明 */
|
||
void LED_Init(void);
|
||
void LED_On(uint8_t led_id);
|
||
void LED_Off(uint8_t led_id);
|
||
void LED_Toggle(uint8_t led_id);
|
||
void LED_Set(uint8_t led_id, LED_State_t state);
|
||
LED_State_t LED_GetState(uint8_t led_id);
|
||
void LED_Printf(uint8_t* ledbuf);
|
||
|
||
|
||
|
||
/* 向后兼容的宏定义(基于新的API实现) */
|
||
#define LED_POW(x) LED_Set(0, x) /* 电源指示灯 */
|
||
#define LED_RUN 1 /* 运行指示灯 */
|
||
|
||
#endif
|