#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; } }