#include "bsp_led.h" #include "main.h" static const GPIO_TypeDef *bsp_led_gpio_ports[BSP_LED_COUNT] = { LED1_GPIO_Port, LED2_GPIO_Port, LED3_GPIO_Port, LED4_GPIO_Port, LED5_GPIO_Port, LED6_GPIO_Port, LED7_GPIO_Port, LED8_GPIO_Port }; static const uint16_t bsp_led_pins[BSP_LED_COUNT] = { LED1_Pin, LED2_Pin, LED3_Pin, LED4_Pin, LED5_Pin, LED6_Pin, LED7_Pin, LED8_Pin, }; void bsp_led_set_output(const uint8_t *command) { for (uint8_t i = 0; i < BSP_LED_COUNT; i ++) { if (command[i] == bsp_led_command_on) { HAL_GPIO_WritePin((GPIO_TypeDef *)bsp_led_gpio_ports[i], bsp_led_pins[i], GPIO_PIN_SET); } else if (command[i] == bsp_led_command_off) { HAL_GPIO_WritePin((GPIO_TypeDef *)bsp_led_gpio_ports[i], bsp_led_pins[i], GPIO_PIN_RESET); } else if (command[i] == bsp_led_command_toggle) { HAL_GPIO_TogglePin((GPIO_TypeDef *)bsp_led_gpio_ports[i], bsp_led_pins[i]); } } } void bsp_led_get_status(uint8_t *status) { for (uint8_t i = 0; i < BSP_LED_COUNT; i ++) { status[i] = bsp_led_gpio_ports[i]->ODR & bsp_led_pins[i] ? 1 : 0; } }