/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : bsp_init.c * @brief : Board support package initialization source file ****************************************************************************** */ /* USER CODE END Header */ #include "bsp_init.h" #include "bsp_config.h" #include "stm32f4xx_hal.h" /** * @brief Initialize board support package */ void bsp_init(void) { /* Initialize board GPIO */ bsp_gpio_init(); } /** * @brief Initialize board GPIO */ void bsp_gpio_init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_TypeDef *gpio_port = NULL; uint32_t gpio_pin = 0; /* Convert HAL GPIO port to STM32 GPIO port */ switch (BSP_LED_PORT) { case HAL_GPIO_PORT_A: gpio_port = GPIOA; __HAL_RCC_GPIOA_CLK_ENABLE(); break; case HAL_GPIO_PORT_B: gpio_port = GPIOB; __HAL_RCC_GPIOB_CLK_ENABLE(); break; case HAL_GPIO_PORT_C: gpio_port = GPIOC; __HAL_RCC_GPIOC_CLK_ENABLE(); break; case HAL_GPIO_PORT_D: gpio_port = GPIOD; __HAL_RCC_GPIOD_CLK_ENABLE(); break; case HAL_GPIO_PORT_E: gpio_port = GPIOE; __HAL_RCC_GPIOE_CLK_ENABLE(); break; case HAL_GPIO_PORT_F: gpio_port = GPIOF; __HAL_RCC_GPIOF_CLK_ENABLE(); break; case HAL_GPIO_PORT_G: gpio_port = GPIOG; __HAL_RCC_GPIOG_CLK_ENABLE(); break; case HAL_GPIO_PORT_H: gpio_port = GPIOH; __HAL_RCC_GPIOH_CLK_ENABLE(); break; case HAL_GPIO_PORT_I: gpio_port = GPIOI; __HAL_RCC_GPIOI_CLK_ENABLE(); break; default: break; } /* Convert HAL GPIO pin to STM32 GPIO pin */ gpio_pin = 1 << BSP_LED_PIN; if (gpio_port != NULL) { /* Configure GPIO pin Output Level */ HAL_GPIO_WritePin(gpio_port, gpio_pin, GPIO_PIN_RESET); /* Configure GPIO pin */ GPIO_InitStruct.Pin = gpio_pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(gpio_port, &GPIO_InitStruct); } } /** * @brief Get board name * @retval Board name string */ const char* bsp_get_board_name(void) { return BOARD_NAME; }