118 lines
2.4 KiB
C
118 lines
2.4 KiB
C
/*
|
|
* @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;
|
|
}
|