1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #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
|