wch-code/ch32v307_mp3_dac/User/bsp/bsp_led.c
2024-05-05 22:27:52 +08:00

58 lines
1.8 KiB
C

#include "bsp_led.h"
void bsp_led_init(void)
{
RCC_APB2PeriphClockCmd(BSP_LED_R_PORT_RCC | BSP_LED_G_PORT_RCC | BSP_LED_B_PORT_RCC, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = BSP_LED_R_PIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(BSP_LED_R_PORT, &GPIO_InitStructure);
GPIO_WriteBit(BSP_LED_R_PORT, BSP_LED_R_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = BSP_LED_G_PIN;
GPIO_Init(BSP_LED_G_PORT, &GPIO_InitStructure);
GPIO_WriteBit(BSP_LED_G_PORT, BSP_LED_G_PIN, Bit_RESET);
GPIO_InitStructure.GPIO_Pin = BSP_LED_B_PIN;
GPIO_Init(BSP_LED_B_PORT, &GPIO_InitStructure);
GPIO_WriteBit(BSP_LED_B_PORT, BSP_LED_B_PIN, Bit_RESET);
}
void bsp_led_set(bsp_led_color_e color, bool status)
{
switch (color)
{
case bsp_led_red:
GPIO_WriteBit(BSP_LED_R_PORT, BSP_LED_R_PIN, status ? Bit_SET : Bit_RESET);
break;
case bsp_led_green:
GPIO_WriteBit(BSP_LED_G_PORT, BSP_LED_G_PIN, status ? Bit_SET : Bit_RESET);
break;
case bsp_led_blue:
GPIO_WriteBit(BSP_LED_B_PORT, BSP_LED_B_PIN, status ? Bit_SET : Bit_RESET);
break;
}
}
void bsp_led_toggle(bsp_led_color_e color)
{
switch (color)
{
case bsp_led_red:
GPIO_WriteBit(BSP_LED_R_PORT, BSP_LED_R_PIN, GPIO_ReadOutputDataBit(BSP_LED_R_PORT, BSP_LED_R_PIN) ? Bit_RESET : Bit_SET);
break;
case bsp_led_green:
GPIO_WriteBit(BSP_LED_G_PORT, BSP_LED_G_PIN, GPIO_ReadOutputDataBit(BSP_LED_G_PORT, BSP_LED_G_PIN) ? Bit_RESET : Bit_SET);
break;
case bsp_led_blue:
GPIO_WriteBit(BSP_LED_B_PORT, BSP_LED_B_PIN, GPIO_ReadOutputDataBit(BSP_LED_B_PORT, BSP_LED_B_PIN) ? Bit_RESET : Bit_SET);
break;
}
}