/* * @Date: 2025-06-26 09:38:27 * @LastEditors: 路怀帅 * @LastEditTime: 2025-06-26 15:04:35 * @FilePath: \Andon_Remote_Control\MDK_PROJECT\Drive\Led.c */ #include "main.h" static void LED_Init(void); static void LED_Set(uint8_t led_x); static void Green_Toggle_Fun(void); static void Red_Toggle_Fun(void); static void Blue_Toggle_Fun(void); static void Yellow_Toggle_Fun(void); typedef LED_Color_Enum Led_Color; LEDClassStruct LEDClass = { .Init = LED_Init, .Set = LED_Set, .GREEN_Toggle = Green_Toggle_Fun, .RED_Toggle = Red_Toggle_Fun, .BLUE_Toggle = Blue_Toggle_Fun, .YELLOW_Toggle = Yellow_Toggle_Fun}; static void LED_Set(uint8_t led_x) { switch (led_x) { case BLACK: LED_ALL_OFF; break; case BLUE: BLUE_ON; break; case GREEN: GREEN_ON; break; case RED: RED_ON; break; case YELLOW: RED_ON; GREEN_ON; break; case WHITE: RED_ON; GREEN_ON; BLUE_ON; break; default: break; } } static void Green_Toggle_Fun() { GREEN_TOG; } static void Blue_Toggle_Fun() { BLUE_TOG; } static void Red_Toggle_Fun() { RED_TOG; } static void Yellow_Toggle_Fun() { RED_TOG; GREEN_TOG; } /** * @brief LED初始化 * @param None * @retval None */ void LED_Init() { /*初始化LED引脚*/ GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStruct); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStruct); GPIO_SetBits(GPIOA, GPIO_Pin_6 | GPIO_Pin_7); GPIO_SetBits(GPIOB, GPIO_Pin_0); } void ASR_Power_Init() { /*初始化LED引脚*/ GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStruct); } void BOARD_Power_Init() { /*初始化LED引脚*/ GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStruct); BOARD_Power_ON; }