58 lines
1.8 KiB
C
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;
|
|
}
|
|
}
|