/* * @Date: 2025-06-26 09:38:45 * @LastEditors: 路怀帅 * @LastEditTime: 2025-06-26 14:37:29 * @FilePath: \Andon_Remote_Control\MDK_PROJECT\Drive\Led.h */ #ifndef __LED_H #define __LED_H #include "main.h" typedef struct { void (*Init)(void); void (*Set)(volatile uint8_t led_x); void (*GREEN_Toggle)(void); void (*RED_Toggle)(void); void (*BLUE_Toggle)(void); void (*YELLOW_Toggle)(void); } LEDClassStruct; #define RED_ON GPIO_ResetBits(GPIOA, GPIO_Pin_6) #define RED_OFF GPIO_SetBits(GPIOA, GPIO_Pin_6) #define RED_TOG GPIOA->BSRR = ((GPIOA->ODR & GPIO_Pin_6) << 16) | (~GPIOA->ODR & GPIO_Pin_6) #define GREEN_ON GPIO_ResetBits(GPIOA, GPIO_Pin_7) #define GREEN_OFF GPIO_SetBits(GPIOA, GPIO_Pin_7) #define GREEN_TOG GPIOA->BSRR = ((GPIOA->ODR & GPIO_Pin_7) << 16) | (~GPIOA->ODR & GPIO_Pin_7) #define BLUE_ON GPIO_ResetBits(GPIOB, GPIO_Pin_0) #define BLUE_OFF GPIO_SetBits(GPIOB, GPIO_Pin_0) #define BLUE_TOG GPIOA->BSRR = ((GPIOB->ODR & GPIO_Pin_0) << 16) | (~GPIOB->ODR & GPIO_Pin_0) #define ASR_Power_ON GPIO_SetBits(GPIOB, GPIO_Pin_8) #define ASR_Power_OFF GPIO_ResetBits(GPIOB, GPIO_Pin_8) #define BOARD_Power_ON GPIO_SetBits(GPIOA, GPIO_Pin_1) #define BOARD_Power_OFF GPIO_ResetBits(GPIOA, GPIO_Pin_1) #define LED_ALL_ON RED_ON;GREEN_ON;BLUE_ON #define LED_ALL_OFF RED_OFF;GREEN_OFF;BLUE_OFF typedef enum { None = 0, CHANGE_Ing, // 充电中 CHANGE_Full, // 充满 UNLOCK_HighBat, // 解锁高电量 UNLOCK_LowBat, // 解锁低电量 SEND_Success, // 发送成功 SEND_Fail, // 发送失败 } LED_State_Enum; typedef enum { BLACK = 0, GREEN, RED, BLUE, YELLOW, WHITE } LED_Color_Enum; void ledBlinkTask(void); extern LEDClassStruct LEDClass; void ASR_Power_Init(void); void BOARD_Power_Init(void); #endif