RMUL2025/User/bsp/a/bsp_led.c
2025-03-09 18:04:03 +08:00

85 lines
1.9 KiB
C

/* Includes ----------------------------------------------------------------- */
#include "bsp_led.h"
#include "gpio.h"
/* Private define ----------------------------------------------------------- */
/* Private macro ------------------------------------------------------------ */
/* Private typedef ---------------------------------------------------------- */
/* Private variables -------------------------------------------------------- */
/* Private function -------------------------------------------------------- */
/* Exported functions ------------------------------------------------------- */
uint8_t BSP_LED_Set(BSP_LED_Channel_t ch, BSP_LED_Status_t s, int16_t duty_cycle) {
GPIO_TypeDef *gpiox;
uint16_t gpio_pin;
switch (ch) {
case BSP_LED1:
gpio_pin = LED1_Pin;
gpiox = LED1_GPIO_Port;
break;
case BSP_LED2:
gpio_pin = LED2_Pin;
gpiox = LED2_GPIO_Port;
break;
case BSP_LED3:
gpio_pin = LED3_Pin;
gpiox = LED3_GPIO_Port;
break;
case BSP_LED4:
gpio_pin = LED4_Pin;
gpiox = LED4_GPIO_Port;
break;
case BSP_LED5:
gpio_pin = LED5_Pin;
gpiox = LED5_GPIO_Port;
break;
case BSP_LED6:
gpio_pin = LED6_Pin;
gpiox = LED6_GPIO_Port;
break;
case BSP_LED7:
gpio_pin = LED7_Pin;
gpiox = LED7_GPIO_Port;
break;
case BSP_LED8:
gpio_pin = LED8_Pin;
gpiox = LED8_GPIO_Port;
break;
case BSP_LED_RED:
gpiox = LED_R_GPIO_Port;
gpio_pin = LED_R_Pin;
break;
case BSP_LED_GRN:
gpiox = LED_G_GPIO_Port;
gpio_pin = LED_G_Pin;
break;
}
switch (s) {
case BSP_LED_ON:
HAL_GPIO_WritePin(gpiox, gpio_pin, GPIO_PIN_RESET);
break;
case BSP_LED_OFF:
HAL_GPIO_WritePin(gpiox, gpio_pin, GPIO_PIN_SET);
break;
case BSP_LED_TAGGLE:
HAL_GPIO_TogglePin(gpiox, gpio_pin);
break;
}
return 0;
}