#ifndef _LED_H_ #define _LED_H_ #include "main.h" #include "gpio.h" #define LED1_R_GPIO_PORT GPIOB #define LED1_R_PIN GPIO_PIN_13 #define LED1_G_GPIO_PORT GPIOB #define LED1_G_PIN GPIO_PIN_12 // ======== LED 状态类型定义 ======== typedef enum { LED_NORMAL, LED_G, LED_R, LED_COMM, LED_WARNING_1, LED_WARNING_2, LED_WARNING_3, LED_WARNING_4, LED_WARNING_5, LED_IAP } LEDStatus_t; // ======== LED 控制结构体 ======== typedef struct { GPIO_TypeDef* GPIOx; uint16_t GPIO_Pin; uint16_t flash_interval_ms; // 单次闪烁周期 uint16_t counter; uint8_t enabled; // 是否启用闪烁 uint8_t flash_times; // 连续闪烁次数(例如:2 表示每轮闪2下) uint8_t current_flash_count; // 当前这轮闪了几次 uint16_t flash_pause_ms; // 连闪之间的间隔时间 uint16_t pause_counter; // 连闪之间的等待计数器 uint8_t in_pause; // 是否处于暂停阶段 uint8_t pin_state; // 当前LED引脚状态(0灭,1亮) } LEDControl_t; // 定义两个灯的控制器(可扩展) extern LEDControl_t led_green; // 绿灯 extern LEDControl_t led_red; // 红灯 void LED_FlashHandler(LEDControl_t* led_self, LEDControl_t* led_other); void UpdateLEDStatus(LEDStatus_t status); #endif