diff --git a/bsp/stm32l476-nucleo/drivers/SConscript b/bsp/stm32l476-nucleo/drivers/SConscript
index c416497b05..c9e2f91b91 100644
--- a/bsp/stm32l476-nucleo/drivers/SConscript
+++ b/bsp/stm32l476-nucleo/drivers/SConscript
@@ -7,8 +7,6 @@ cwd = os.path.join(str(Dir('#')), 'drivers')
# add the general drivers.
src = Split("""
board.c
-stm32l4xx_it.c
-stm32l4xx_nucleo.c
usart.c
""")
diff --git a/bsp/stm32l476-nucleo/drivers/stm32l4xx_nucleo.c b/bsp/stm32l476-nucleo/drivers/stm32l4xx_nucleo.c
deleted file mode 100644
index aba632c832..0000000000
--- a/bsp/stm32l476-nucleo/drivers/stm32l4xx_nucleo.c
+++ /dev/null
@@ -1,1079 +0,0 @@
-/**
- ******************************************************************************
- * @file stm32l4xx_nucleo.c
- * @author MCD Application Team
- * @version V2.1.0
- * @date 16-June-2017
- * @brief This file provides set of firmware functions to manage:
- * - LEDs and push-button available on STM32L4XX-Nucleo Kit
- * from STMicroelectronics
- * - LCD, joystick and microSD available on Adafruit 1.8" TFT LCD
- * shield (reference ID 802)
- ******************************************************************************
- * @attention
- *
- *
© COPYRIGHT(c) 2015 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32l4xx_nucleo.h"
-
-/** @addtogroup BSP
- * @{
- */
-
-/** @defgroup STM32L4XX_NUCLEO STM32L476RG-Nucleo
- * @brief This file provides set of firmware functions to manage Leds and push-button
- * available on STM32L4XX-Nucleo Kit from STMicroelectronics.
- * It provides also LCD, joystick and uSD functions to communicate with
- * Adafruit 1.8" TFT LCD shield (reference ID 802)
- * @{
- */
-
-
-/** @defgroup STM32L4XX_NUCLEO_Private_Defines Private Defines
- * @{
- */
-
-/**
- * @brief STM32L4xx NUCLEO BSP Driver version V2.1.0
- */
-#define __STM32L4XX_NUCLEO_BSP_VERSION_MAIN (0x02) /*!< [31:24] main version */
-#define __STM32L4XX_NUCLEO_BSP_VERSION_SUB1 (0x01) /*!< [23:16] sub1 version */
-#define __STM32L4XX_NUCLEO_BSP_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */
-#define __STM32L4XX_NUCLEO_BSP_VERSION_RC (0x00) /*!< [7:0] release candidate */
-#define __STM32L4XX_NUCLEO_BSP_VERSION ((__STM32L4XX_NUCLEO_BSP_VERSION_MAIN << 24)\
- |(__STM32L4XX_NUCLEO_BSP_VERSION_SUB1 << 16)\
- |(__STM32L4XX_NUCLEO_BSP_VERSION_SUB2 << 8 )\
- |(__STM32L4XX_NUCLEO_BSP_VERSION_RC))
-
-/**
- * @brief LINK SD Card
- */
-#define SD_DUMMY_BYTE 0xFF
-#define SD_NO_RESPONSE_EXPECTED 0x80
-
-/**
- * @}
- */
-
-
-#ifdef USE_STM32L4XX_NUCLEO_64_SMPS
-
-/**
- * @brief SMPS
- */
-
-
-#ifdef USE_ADP5301ACBZ /* ADP5301ACBZ */
-
-/* ######################################################################## */
-/* #define PORT_SMPS GPIOA */
-/* #define PIN_SMPS_ENABLE GPIO_PIN_4 */
-/* #define PIN_SMPS_POWERGOOD GPIO_PIN_6 */
-/* #define PIN_SMPS_SWITCH_ENABLE GPIO_PIN_7 */
-
-/* IN CASE OF SMPS VOLTAGE RANGE SELECTION */
-/* #define PIN_SMPS_V1 GPIO_PIN_5 */
-/* ######################################################################## */
-
-#endif /* ADP5301ACBZ */
-
-/**
- * @}
- */
-
-#endif /* USE_STM32L4XX_NUCLEO_64_SMPS */
-
-/** @defgroup STM32L4XX_NUCLEO_Private_Variables Exported Variables
- * @{
- */
-#ifdef USE_STM32L4XX_NUCLEO_64_SMPS
-GPIO_TypeDef* GPIO_PORT[LEDn] = {LED4_GPIO_PORT};
-const uint16_t GPIO_PIN[LEDn] = {LED4_PIN};
-#else
-GPIO_TypeDef* GPIO_PORT[LEDn] = {LED2_GPIO_PORT};
-const uint16_t GPIO_PIN[LEDn] = {LED2_PIN};
-#endif
-
-GPIO_TypeDef* BUTTON_PORT[BUTTONn] = {USER_BUTTON_GPIO_PORT};
-const uint16_t BUTTON_PIN[BUTTONn] = {USER_BUTTON_PIN};
-const uint16_t BUTTON_IRQn[BUTTONn] = {USER_BUTTON_EXTI_IRQn};
-
-/**
- * @brief BUS variables
- */
-
-#ifdef HAL_SPI_MODULE_ENABLED
-uint32_t hnucleo_SpixTimeout = NUCLEO_SPIx_TIMEOUT_MAX; /*PWR_PU_REG, PWR_GPIO_ENABLE)))
- {
- HAL_PWREx_EnableGPIOPullDown (PWR_GPIO_SMPS, PWR_GPIO_SWITCH_ENABLE);
- HAL_PWREx_EnableGPIOPullDown (PWR_GPIO_SMPS, PWR_GPIO_ENABLE);
-
- /* HW limitation: Level shifter consumes because of dangling, so pull PA2 up
- (LPUART1_TX), PA13 (SWD/TMS) and PB3 (SWO) */
- HAL_PWREx_EnableGPIOPullUp(PWR_GPIO_A,GPIO_PIN_2); /* LPUART1_TX */
- HAL_PWREx_EnableGPIOPullUp(PWR_GPIO_A,GPIO_PIN_13); /* SWD/TMS */
- HAL_PWREx_EnableGPIOPullUp(PWR_GPIO_B,GPIO_PIN_3); /* SWO */
-
- /* Don't set PWR_CR3 APC bit at this time as it increases power
- consumption in non-Standby/Shutdown modes. It will have to be
- set with HAL_PWREx_EnablePullUpPullDownConfig() API upon
- Standby or Shutdown modes entering */
- }
- /* ------------------------------------------------------------------------ */
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- GPIO_InitStruct.Pull = GPIO_PULLUP;
-
- GPIO_InitStruct.Pin = PIN_SMPS_POWERGOOD;
- HAL_GPIO_Init(PORT_SMPS, &GPIO_InitStruct);
-
- /* ------------------------------------------------------------------------ */
-
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
-
- GPIO_InitStruct.Pin = PIN_SMPS_ENABLE | PIN_SMPS_SWITCH_ENABLE;
- HAL_GPIO_Init(PORT_SMPS, &GPIO_InitStruct);
-
- /* --------- SMPS VOLTAGE RANGE SELECTION ----------------------------------*/
- /* ######################################################################## */
- /* - > Not applicable to ADP5301ACBZ on MB1319 */
- /* ######################################################################## */
- /* - > Applicable to ST1PS02D1QTR */
- /* Control to be added */
-
- /* ST1PS02D1QTR on MB1312 */
- /* if (VoltageRange == ST1PS02D1QTR_VOUT_1_25) */
- /* HAL_GPIO_WritePin(PORT_SMPS, PIN_SMPS_V1, GPIO_PIN_SET); */
- /* 1.25V */
- /* D0/D1/D2 = H/L/L */
- /* else */
-
- /* */
- /* ST1PS02D1QTR on MB1312 */
- /* ST1PS02D1QTR_VOUT_1_05 */
- /* 1.05V */
- /* D0/D1/D2 = L/L/L */
- /* HAL_GPIO_WritePin(PORT_SMPS, PIN_SMPS_V1, GPIO_PIN_RESET); */
- /* ######################################################################## */
- return SMPS_OK;
-}
-
-/**
- * @brief Enable the external SMPS component
- * @param Delay: delay in ms after enable
- * @param Power_Good_Check: Enable Power good check
- * @note Power_Good_Check is not used with all external
- * SMPS components
- * @retval SMPS status
- * @arg SMPS_OK: SMPS ENABLE OK
- * @arg SMPS_KO: POWER GOOD CHECK FAILS
- */
-uint32_t BSP_SMPS_Enable (uint32_t Delay, uint32_t Power_Good_Check)
-{
- PWR_AND_CLK_SMPS();
-
- HAL_GPIO_WritePin(PORT_SMPS, PIN_SMPS_ENABLE, GPIO_PIN_SET);
-
- /* Delay upon request */
- if (Delay != 0)
- {
- HAL_Delay(Delay);
- }
-
- /* CHECK POWER GOOD or NOT */
- if (Power_Good_Check != 0)
- {
- if (GPIO_PIN_RESET == (HAL_GPIO_ReadPin(PORT_SMPS, PIN_SMPS_POWERGOOD)))
- {
- /* POWER GOOD KO */
- return SMPS_KO;
- }
- }
-
- /* SMPS ENABLE */
- return SMPS_OK;
-}
-
-/**
- * @brief Disable the external SMPS component
- * @param NONE
- * @note SMPS SWITCH should be disabled first !
- * @retval SMPS status
- * @arg SMPS_OK: SMPS DISABLE OK - DONE
- * @arg SMPS_KO: POWER GOOD CHECK FAILS
- *
- */
-uint32_t BSP_SMPS_Disable (void)
-{
-
- PWR_AND_CLK_SMPS();
-
- /* Check if SMPS SWITCH is disabled */
- if (HAL_GPIO_ReadPin(PORT_SMPS, PIN_SMPS_SWITCH_ENABLE) != GPIO_PIN_RESET)
- {
- /* ERROR AS SWITCH SHOULD BE DISABLE */
- return SMPS_KO;
- }
-
- /* Disable SMPS */
- HAL_GPIO_WritePin(PORT_SMPS, PIN_SMPS_ENABLE, GPIO_PIN_RESET);
-
- /* SMPS DISABLE */
- return SMPS_OK;
-}
-
-/**
- * @brief Enable the external SMPS SWITCH component
- * @param Delay: delay in ms before SMPS SWITCH ENABLE
- * @param Power_Good_Check: Enable Power good check
- * @note Power_Good_Check is not used with all boards
- * @retval SMPS status
- * @arg SMPS_OK: SMPS ENABLE OK
- * @arg SMPS_KO: POWER GOOD CHECK FAILS
- */
-uint32_t BSP_SMPS_Supply_Enable (uint32_t Delay, uint32_t Power_Good_Check)
-{
- PWR_AND_CLK_SMPS();
-
- if (Delay != 0)
- {
- HAL_Delay(Delay);
- }
- /* CHECK POWER GOOD or NOT */
- if (Power_Good_Check != 0)
- {
- if (GPIO_PIN_RESET == (HAL_GPIO_ReadPin(PORT_SMPS, PIN_SMPS_POWERGOOD)))
- {
- /* POWER GOOD KO */
- return SMPS_KO;
- }
- }
-
- /* SMPS SWITCH ENABLE */
- HAL_GPIO_WritePin(PORT_SMPS, PIN_SMPS_SWITCH_ENABLE, GPIO_PIN_SET);
-
-
- return SMPS_OK;
-}
-
-/**
- * @brief Disable the external SMPS SWITCH component
- * @param None
- * @retval SMPS status
- * @arg SMPS_OK: SMPS SWITCH DISABLE OK
- */
-uint32_t BSP_SMPS_Supply_Disable (void)
-{
- PWR_AND_CLK_SMPS();
- /* SMPS SWITCH DISABLE */
- HAL_GPIO_WritePin(PORT_SMPS, PIN_SMPS_SWITCH_ENABLE, GPIO_PIN_RESET);
-
- return SMPS_OK;
-}
-
-#endif /* ADP5301ACBZ */
-#endif /* USE_STM32L4XX_NUCLEO_64_SMPS */
-
-
-#ifdef HAL_ADC_MODULE_ENABLED
-/**
- * @brief Configures joystick available on adafruit 1.8" TFT shield
- * managed through ADC to detect motion.
- * @retval Joystickstatus (0=> success, 1=> fail)
- */
-uint8_t BSP_JOY_Init(void)
-{
- if (ADCx_Init() != HAL_OK)
- {
- return (uint8_t) HAL_ERROR;
- }
-
- /* Select Channel 15 to be converted */
- hnucleo_AdcChannelConfig.Channel = ADC_CHANNEL_15;
- hnucleo_AdcChannelConfig.SamplingTime = ADC_SAMPLETIME_24CYCLES_5;
- hnucleo_AdcChannelConfig.Rank = 1;
- hnucleo_AdcChannelConfig.SingleDiff = ADC_SINGLE_ENDED;
- hnucleo_AdcChannelConfig.OffsetNumber = ADC_OFFSET_NONE;
-
- /* Return Joystick initialization status */
- return (uint8_t) HAL_ADC_ConfigChannel(&hnucleo_Adc, &hnucleo_AdcChannelConfig);
-}
-
-/**
- * @brief Returns the Joystick key pressed.
- * @note To know which Joystick key is pressed we need to detect the voltage
- * level on each key output
- * - None : 3.3 V / 4095
- * - SEL : 1.055 V / 1308
- * - DOWN : 0.71 V / 88
- * - LEFT : 3.0 V / 3720
- * - RIGHT : 0.595 V / 737
- * - UP : 1.65 V / 2046
- * @retval JOYState_TypeDef: Code of the Joystick key pressed.
- */
-JOYState_TypeDef BSP_JOY_GetState(void)
-{
- JOYState_TypeDef state = JOY_NONE;
- uint16_t keyconvertedvalue = 0;
-
- /* Start the conversion process */
- HAL_ADC_Start(&hnucleo_Adc);
-
- /* Wait for the end of conversion */
- HAL_ADC_PollForConversion(&hnucleo_Adc, 10);
-
- /* Check if the continous conversion of regular channel is finished */
- if(HAL_ADC_GetState(&hnucleo_Adc) & HAL_ADC_STATE_REG_EOC)
- {
- /* Get the converted value of regular channel */
- keyconvertedvalue = HAL_ADC_GetValue(&hnucleo_Adc);
- }
-
- if((keyconvertedvalue > 1980) && (keyconvertedvalue < 2120))
- {
- state = JOY_UP;
- }
- else if((keyconvertedvalue > 630) && (keyconvertedvalue < 830))
- {
- state = JOY_RIGHT;
- }
- else if((keyconvertedvalue > 1210) && (keyconvertedvalue < 1410))
- {
- state = JOY_SEL;
- }
- else if((keyconvertedvalue > 20) && (keyconvertedvalue < 160))
- {
- state = JOY_DOWN;
- }
- else if((keyconvertedvalue > 3620) && (keyconvertedvalue < 3820))
- {
- state = JOY_LEFT;
- }
- else
- {
- state = JOY_NONE;
- }
-
- /* Return the code of the Joystick key pressed*/
- return state;
-}
-
-#endif /* HAL_ADC_MODULE_ENABLED */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/** @addtogroup STM32L4XX_NUCLEO_Private_Functions
- * @{
- */
-
-#ifdef HAL_SPI_MODULE_ENABLED
-/******************************************************************************
- BUS OPERATIONS
-*******************************************************************************/
-/**
- * @brief Initialize SPI MSP.
- * @retval None
- */
-static void SPIx_MspInit(void)
-{
- GPIO_InitTypeDef gpioinitstruct = {0};
-
- /*** Configure the GPIOs ***/
- /* Enable GPIO clock */
- NUCLEO_SPIx_SCK_GPIO_CLK_ENABLE();
- NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_ENABLE();
-
- /* Configure SPI SCK */
- gpioinitstruct.Pin = NUCLEO_SPIx_SCK_PIN;
- gpioinitstruct.Mode = GPIO_MODE_AF_PP;
- gpioinitstruct.Pull = GPIO_PULLUP;
- gpioinitstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- gpioinitstruct.Alternate = NUCLEO_SPIx_SCK_AF;
- HAL_GPIO_Init(NUCLEO_SPIx_SCK_GPIO_PORT, &gpioinitstruct);
-
- /* Configure SPI MISO and MOSI */
- gpioinitstruct.Pin = NUCLEO_SPIx_MOSI_PIN;
- gpioinitstruct.Alternate = NUCLEO_SPIx_MISO_MOSI_AF;
- gpioinitstruct.Pull = GPIO_PULLDOWN;
- HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &gpioinitstruct);
-
- gpioinitstruct.Pin = NUCLEO_SPIx_MISO_PIN;
- HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &gpioinitstruct);
-
- /*** Configure the SPI peripheral ***/
- /* Enable SPI clock */
- NUCLEO_SPIx_CLK_ENABLE();
-}
-
-/**
- * @brief Initialize SPI HAL.
- * @retval None
- */
-static void SPIx_Init(void)
-{
- if(HAL_SPI_GetState(&hnucleo_Spi) == HAL_SPI_STATE_RESET)
- {
- /* SPI Config */
- hnucleo_Spi.Instance = NUCLEO_SPIx;
- /* SPI baudrate is set to 8 MHz maximum (PCLK2/SPI_BaudRatePrescaler = 32/4 = 8 MHz)
- to verify these constraints:
- - ST7735 LCD SPI interface max baudrate is 15MHz for write and 6.66MHz for read
- Since the provided driver doesn't use read capability from LCD, only constraint
- on write baudrate is considered.
- - SD card SPI interface max baudrate is 25MHz for write/read
- - PCLK2 max frequency is 32 MHz
- */
- hnucleo_Spi.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
- hnucleo_Spi.Init.Direction = SPI_DIRECTION_2LINES;
- hnucleo_Spi.Init.CLKPhase = SPI_PHASE_2EDGE;
- hnucleo_Spi.Init.CLKPolarity = SPI_POLARITY_HIGH;
- hnucleo_Spi.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
- hnucleo_Spi.Init.CRCPolynomial = 7;
- hnucleo_Spi.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
- hnucleo_Spi.Init.DataSize = SPI_DATASIZE_8BIT;
- hnucleo_Spi.Init.FirstBit = SPI_FIRSTBIT_MSB;
- hnucleo_Spi.Init.NSS = SPI_NSS_SOFT;
- hnucleo_Spi.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
- hnucleo_Spi.Init.TIMode = SPI_TIMODE_DISABLE;
- hnucleo_Spi.Init.Mode = SPI_MODE_MASTER;
-
- SPIx_MspInit();
- HAL_SPI_Init(&hnucleo_Spi);
- }
-}
-
-/**
- * @brief SPI Write byte(s) to device
- * @param DataIn: Pointer to data buffer to write
- * @param DataOut: Pointer to data buffer for read data
- * @param DataLength: number of bytes to write
- * @retval None
- */
-static void SPIx_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLength)
-{
- HAL_StatusTypeDef status = HAL_OK;
- status = HAL_SPI_TransmitReceive(&hnucleo_Spi, (uint8_t*) DataIn, DataOut, DataLength, hnucleo_SpixTimeout);
-
- /* Check the communication status */
- if(status != HAL_OK)
- {
- /* Execute user timeout callback */
- SPIx_Error();
- }
-}
-
-/**
- * @brief SPI Write a byte to device
- * @param Value: value to be written
- * @retval None
- */
-static void SPIx_Write(uint8_t Value)
-{
- HAL_StatusTypeDef status = HAL_OK;
- uint8_t data;
-
- status = HAL_SPI_TransmitReceive(&hnucleo_Spi, (uint8_t*) &Value, &data, 1, hnucleo_SpixTimeout);
-
- /* Check the communication status */
- if(status != HAL_OK)
- {
- /* Execute user timeout callback */
- SPIx_Error();
- }
-}
-
-/**
- * @brief SPI error treatment function
- * @retval None
- */
-static void SPIx_Error (void)
-{
- /* De-initialize the SPI communication BUS */
- HAL_SPI_DeInit(&hnucleo_Spi);
-
- /* Re-Initiaize the SPI communication BUS */
- SPIx_Init();
-}
-
-/******************************************************************************
- LINK OPERATIONS
-*******************************************************************************/
-
-/********************************* LINK SD ************************************/
-/**
- * @brief Initialize the SD Card and put it into StandBy State (Ready for
- * data transfer).
- * @retval None
- */
-void SD_IO_Init(void)
-{
- GPIO_InitTypeDef gpioinitstruct = {0};
- uint8_t counter = 0;
-
- /* SD_CS_GPIO Periph clock enable */
- SD_CS_GPIO_CLK_ENABLE();
-
- /* Configure SD_CS_PIN pin: SD Card CS pin */
- gpioinitstruct.Pin = SD_CS_PIN;
- gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
- gpioinitstruct.Pull = GPIO_PULLUP;
- gpioinitstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- HAL_GPIO_Init(SD_CS_GPIO_PORT, &gpioinitstruct);
-
- /* Configure LCD_CS_PIN pin: LCD Card CS pin */
- gpioinitstruct.Pin = LCD_CS_PIN;
- gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
- gpioinitstruct.Pull = GPIO_NOPULL;
- gpioinitstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- HAL_GPIO_Init(SD_CS_GPIO_PORT, &gpioinitstruct);
- LCD_CS_HIGH();
-
- /*------------Put SD in SPI mode--------------*/
- /* SD SPI Config */
- SPIx_Init();
-
- /* SD chip select high */
- SD_CS_HIGH();
-
- /* Send dummy byte 0xFF, 10 times with CS high */
- /* Rise CS and MOSI for 80 clocks cycles */
- for (counter = 0; counter <= 9; counter++)
- {
- /* Send dummy byte 0xFF */
- SD_IO_WriteByte(SD_DUMMY_BYTE);
- }
-}
-
-/**
- * @brief Set SD interface Chip Select state
- * @param val: 0 (low) or 1 (high) state
- * @retval None
- */
-void SD_IO_CSState(uint8_t val)
-{
- if(val == 1)
- {
- SD_CS_HIGH();
- }
- else
- {
- SD_CS_LOW();
- }
-}
-
-/**
- * @brief Write byte(s) on the SD
- * @param DataIn: Pointer to data buffer to write
- * @param DataOut: Pointer to data buffer for read data
- * @param DataLength: number of bytes to write
- * @retval None
- */
-void SD_IO_WriteReadData(const uint8_t *DataIn, uint8_t *DataOut, uint16_t DataLength)
-{
- /* Send the byte */
- SPIx_WriteReadData(DataIn, DataOut, DataLength);
-}
-
-/**
- * @brief Write a byte on the SD.
- * @param Data: byte to send.
- * @retval Data written
- */
-uint8_t SD_IO_WriteByte(uint8_t Data)
-{
- uint8_t tmp;
-
- /* Send the byte */
- SPIx_WriteReadData(&Data,&tmp,1);
- return tmp;
-}
-
-/********************************* LINK LCD ***********************************/
-/**
- * @brief Initialize the LCD
- * @retval None
- */
-void LCD_IO_Init(void)
-{
- GPIO_InitTypeDef gpioinitstruct = {0};
-
- /* LCD_CS_GPIO and LCD_DC_GPIO Periph clock enable */
- LCD_CS_GPIO_CLK_ENABLE();
- LCD_DC_GPIO_CLK_ENABLE();
-
- /* Configure LCD_CS_PIN pin: LCD Card CS pin */
- gpioinitstruct.Pin = LCD_CS_PIN;
- gpioinitstruct.Mode = GPIO_MODE_OUTPUT_PP;
- gpioinitstruct.Pull = GPIO_NOPULL;
- gpioinitstruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- HAL_GPIO_Init(SD_CS_GPIO_PORT, &gpioinitstruct);
-
- /* Configure LCD_DC_PIN pin: LCD Card DC pin */
- gpioinitstruct.Pin = LCD_DC_PIN;
- HAL_GPIO_Init(LCD_DC_GPIO_PORT, &gpioinitstruct);
-
- /* LCD chip select high */
- LCD_CS_HIGH();
-
- /* LCD SPI Config */
- SPIx_Init();
-}
-
-/**
- * @brief Write command to select the LCD register.
- * @param LCDReg: Address of the selected register.
- * @retval None
- */
-void LCD_IO_WriteReg(uint8_t LCDReg)
-{
- /* Reset LCD control line CS */
- LCD_CS_LOW();
-
- /* Set LCD data/command line DC to Low */
- LCD_DC_LOW();
-
- /* Send Command */
- SPIx_Write(LCDReg);
-
- /* Deselect : Chip Select high */
- LCD_CS_HIGH();
-}
-
-/**
-* @brief Write register value.
-* @param pData Pointer on the register value
-* @param Size Size of byte to transmit to the register
-* @retval None
-*/
-void LCD_IO_WriteMultipleData(uint8_t *pData, uint32_t Size)
-{
- uint32_t counter = 0;
- __IO uint32_t data = 0;
-
- /* Reset LCD control line CS */
- LCD_CS_LOW();
-
- /* Set LCD data/command line DC to High */
- LCD_DC_HIGH();
-
- if (Size == 1)
- {
- /* Only 1 byte to be sent to LCD - general interface can be used */
- /* Send Data */
- SPIx_Write(*pData);
- }
- else
- {
- /* Several data should be sent in a raw */
- /* Direct SPI accesses for optimization */
- for (counter = Size; counter != 0; counter--)
- {
- while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_TXE) != SPI_FLAG_TXE)
- {
- }
- /* Need to invert bytes for LCD*/
- *((__IO uint8_t*)&hnucleo_Spi.Instance->DR) = *(pData+1);
-
- while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_TXE) != SPI_FLAG_TXE)
- {
- }
- *((__IO uint8_t*)&hnucleo_Spi.Instance->DR) = *pData;
- counter--;
- pData += 2;
- }
-
- /* Wait until the bus is ready before releasing Chip select */
- while(((hnucleo_Spi.Instance->SR) & SPI_FLAG_BSY) != RESET)
- {
- }
- }
-
- /* Empty the Rx fifo */
- data = *(&hnucleo_Spi.Instance->DR);
- UNUSED(data); /* Remove GNU warning */
-
- /* Deselect : Chip Select high */
- LCD_CS_HIGH();
-}
-
-/**
- * @brief Wait for loop in ms.
- * @param Delay in ms.
- * @retval None
- */
-void LCD_Delay(uint32_t Delay)
-{
- HAL_Delay(Delay);
-}
-
-#endif /* HAL_SPI_MODULE_ENABLED */
-
-#ifdef HAL_ADC_MODULE_ENABLED
-/******************************* LINK JOYSTICK ********************************/
-/**
- * @brief Initialize ADC MSP.
- * @retval None
- */
-static void ADCx_MspInit(ADC_HandleTypeDef *hadc)
-{
- GPIO_InitTypeDef gpioinitstruct = {0};
- RCC_PeriphCLKInitTypeDef RCC_PeriphCLKInitStruct;
-
- /*** Configure the GPIOs ***/
- /* Enable GPIO clock */
- NUCLEO_ADCx_GPIO_CLK_ENABLE();
-
- /* Configure ADC1 Channel8 as analog input */
- gpioinitstruct.Pin = NUCLEO_ADCx_GPIO_PIN ;
- gpioinitstruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL;
- gpioinitstruct.Pull = GPIO_NOPULL;
- gpioinitstruct.Speed = GPIO_SPEED_FREQ_HIGH;
- HAL_GPIO_Init(NUCLEO_ADCx_GPIO_PORT, &gpioinitstruct);
-
- /*** Configure the ADC peripheral ***/
- /* Enable ADC clock */
- NUCLEO_ADCx_CLK_ENABLE();
-
- /* Configure SYSCLK as source clock for ADC */
- RCC_PeriphCLKInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADC;
- RCC_PeriphCLKInitStruct.AdcClockSelection = RCC_ADCCLKSOURCE_SYSCLK;
- HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphCLKInitStruct);
-}
-
-/**
- * @brief Initializes ADC HAL.
- * @retval None
- */
-static HAL_StatusTypeDef ADCx_Init(void)
-{
- if(HAL_ADC_GetState(&hnucleo_Adc) == HAL_ADC_STATE_RESET)
- {
- /* ADC Config */
- hnucleo_Adc.Instance = NUCLEO_ADCx;
- hnucleo_Adc.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV8; /* (must not exceed 16MHz) */
- hnucleo_Adc.Init.Resolution = ADC_RESOLUTION_12B;
- hnucleo_Adc.Init.DataAlign = ADC_DATAALIGN_RIGHT;
- hnucleo_Adc.Init.ScanConvMode = DISABLE;
- hnucleo_Adc.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
- hnucleo_Adc.Init.LowPowerAutoWait = ENABLE;
- hnucleo_Adc.Init.ContinuousConvMode = DISABLE;
- hnucleo_Adc.Init.NbrOfConversion = 1;
- hnucleo_Adc.Init.DiscontinuousConvMode = DISABLE;
- hnucleo_Adc.Init.NbrOfDiscConversion = 1;
- hnucleo_Adc.Init.ExternalTrigConv = ADC_SOFTWARE_START;
- hnucleo_Adc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
- hnucleo_Adc.Init.DMAContinuousRequests = DISABLE;
- hnucleo_Adc.Init.Overrun = ADC_OVR_DATA_PRESERVED;
- hnucleo_Adc.Init.OversamplingMode = DISABLE;
-
- ADCx_MspInit(&hnucleo_Adc);
- if (HAL_ADC_Init(&hnucleo_Adc) != HAL_OK)
- {
- return HAL_ERROR;
- }
-
- if (HAL_ADCEx_Calibration_Start(&hnucleo_Adc,ADC_SINGLE_ENDED) != HAL_OK)
- {
- return HAL_ERROR;
- }
- }
-
- return HAL_OK;
-}
-
-#endif /* HAL_ADC_MODULE_ENABLED */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/bsp/stm32l476-nucleo/drivers/stm32l4xx_nucleo.h b/bsp/stm32l476-nucleo/drivers/stm32l4xx_nucleo.h
deleted file mode 100644
index bef6f53c3c..0000000000
--- a/bsp/stm32l476-nucleo/drivers/stm32l4xx_nucleo.h
+++ /dev/null
@@ -1,364 +0,0 @@
-/**
- ******************************************************************************
- * @file stm32l4xx_nucleo.h
- * @author MCD Application Team
- * @version V2.1.0
- * @date 16-June-2017
- * @brief This file contains definitions for:
- * - LEDs and push-button available on STM32L4XX-Nucleo Kit
- * from STMicroelectronics
- * - LCD, joystick and microSD available on Adafruit 1.8" TFT LCD
- * shield (reference ID 802)
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2015 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef __STM32L4XX_NUCLEO_H
-#define __STM32L4XX_NUCLEO_H
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup STM32L4XX_NUCLEO
- * @{
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "stm32l4xx_hal.h"
-
-
-/** @defgroup STM32L4XX_NUCLEO_Exported_Types Exported Types
- * @{
- */
-#ifdef USE_STM32L4XX_NUCLEO_64_SMPS
-typedef enum
-{
- LED4 = 0,
-
- LED_GREEN = LED4
-} Led_TypeDef;
-#else
-typedef enum
-{
- LED2 = 0,
-
- LED_GREEN = LED2
-} Led_TypeDef;
-#endif
-
-typedef enum
-{
- BUTTON_USER = 0,
- /* Alias */
- BUTTON_KEY = BUTTON_USER
-} Button_TypeDef;
-
-typedef enum
-{
- BUTTON_MODE_GPIO = 0,
- BUTTON_MODE_EXTI = 1
-} ButtonMode_TypeDef;
-
-typedef enum
-{
- JOY_NONE = 0,
- JOY_SEL = 1,
- JOY_DOWN = 2,
- JOY_LEFT = 3,
- JOY_RIGHT = 4,
- JOY_UP = 5
-} JOYState_TypeDef;
-
-/**
- * @}
- */
-
-/** @defgroup STM32L4XX_NUCLEO_Exported_Constants Exported Constants
- * @{
- */
-
-/**
-* @brief Define for STM32L4XX_NUCLEO board
- */
-#if !defined (USE_STM32L4XX_NUCLEO)
- #define USE_STM32L4XX_NUCLEO
-#endif
-
-/** @defgroup STM32L4XX_NUCLEO_LED LED Constants
- * @{
- */
-#define LEDn 1
-#ifdef USE_STM32L4XX_NUCLEO_64_SMPS
-#define LED4_PIN GPIO_PIN_13
-#define LED4_GPIO_PORT GPIOB
-#define LED4_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
-#define LED4_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
-#define LEDx_GPIO_CLK_ENABLE(__LED__) do { if((__LED__) == LED4) { LED4_GPIO_CLK_ENABLE(); } } while(0)
-#define LEDx_GPIO_CLK_DISABLE(__LED__) do { if((__LED__) == LED4) { LED4_GPIO_CLK_DISABLE(); } } while(0)
-#else
-#define LED2_PIN GPIO_PIN_5
-#define LED2_GPIO_PORT GPIOA
-#define LED2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
-#define LED2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
-#define LEDx_GPIO_CLK_ENABLE(__LED__) do { if((__LED__) == LED2) { LED2_GPIO_CLK_ENABLE(); } } while(0)
-#define LEDx_GPIO_CLK_DISABLE(__LED__) do { if((__LED__) == LED2) { LED2_GPIO_CLK_DISABLE(); } } while(0)
-#endif
-
-
-/**
- * @}
- */
-
-#ifdef USE_STM32L4XX_NUCLEO_64_SMPS
-#ifdef USE_ADP5301ACBZ /* ADP5301ACBZ */
-
-/** @addtogroup STM32L4XX_NUCLEO_64_SMPS
- * @{
- */
-#define PWR_AND_CLK_SMPS() do { __HAL_RCC_PWR_CLK_ENABLE(); \
- __HAL_RCC_GPIOA_CLK_ENABLE(); } while(0)
-
-/**
- * @}
- */
-
-#endif /* ADP5301ACBZ */
-#endif /* USE_STM32L4XX_NUCLEO_64_SMPS */
-
-
-/** @defgroup STM32L4XX_NUCLEO_BUTTON BUTTON Constants
- * @{
- */
-#define BUTTONn 1
-
-/**
- * @brief Key push-button
- */
-#define USER_BUTTON_PIN GPIO_PIN_13
-#define USER_BUTTON_GPIO_PORT GPIOC
-#define USER_BUTTON_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
-#define USER_BUTTON_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE()
-#define USER_BUTTON_EXTI_LINE GPIO_PIN_13
-#define USER_BUTTON_EXTI_IRQn EXTI15_10_IRQn
-/* Aliases */
-#define KEY_BUTTON_PIN USER_BUTTON_PIN
-#define KEY_BUTTON_GPIO_PORT USER_BUTTON_GPIO_PORT
-#define KEY_BUTTON_GPIO_CLK_ENABLE() USER_BUTTON_GPIO_CLK_ENABLE()
-#define KEY_BUTTON_GPIO_CLK_DISABLE() USER_BUTTON_GPIO_CLK_DISABLE()
-#define KEY_BUTTON_EXTI_LINE USER_BUTTON_EXTI_LINE
-#define KEY_BUTTON_EXTI_IRQn USER_BUTTON_EXTI_IRQn
-
-
-#define BUTTONx_GPIO_CLK_ENABLE(__BUTTON__) do { if((__BUTTON__) == BUTTON_USER) { USER_BUTTON_GPIO_CLK_ENABLE(); } } while(0)
-
-#define BUTTONx_GPIO_CLK_DISABLE(__BUTTON__) do { if((__BUTTON__) == BUTTON_USER) { USER_BUTTON_GPIO_CLK_DISABLE(); } } while(0)
-/**
- * @}
- */
-
-/** @addtogroup STM32L4XX_NUCLEO_BUS BUS Constants
- * @{
- */
-/*###################### SPI1 ###################################*/
-#define NUCLEO_SPIx SPI1
-#define NUCLEO_SPIx_CLK_ENABLE() __HAL_RCC_SPI1_CLK_ENABLE()
-
-#define NUCLEO_SPIx_SCK_AF GPIO_AF5_SPI1
-#define NUCLEO_SPIx_SCK_GPIO_PORT GPIOA
-#define NUCLEO_SPIx_SCK_PIN GPIO_PIN_5
-#define NUCLEO_SPIx_SCK_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
-#define NUCLEO_SPIx_SCK_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
-
-#define NUCLEO_SPIx_MISO_MOSI_AF GPIO_AF5_SPI1
-#define NUCLEO_SPIx_MISO_MOSI_GPIO_PORT GPIOA
-#define NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
-#define NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
-#define NUCLEO_SPIx_MISO_PIN GPIO_PIN_6
-#define NUCLEO_SPIx_MOSI_PIN GPIO_PIN_7
-/* Maximum Timeout values for flags waiting loops. These timeouts are not based
- on accurate values, they just guarantee that the application will not remain
- stuck if the SPI communication is corrupted.
- You may modify these timeout values depending on CPU frequency and application
- conditions (interrupts routines ...). */
-#define NUCLEO_SPIx_TIMEOUT_MAX 1000
-
-
-/**
- * @brief SD Control Lines management
- */
-#define SD_CS_LOW() HAL_GPIO_WritePin(SD_CS_GPIO_PORT, SD_CS_PIN, GPIO_PIN_RESET)
-#define SD_CS_HIGH() HAL_GPIO_WritePin(SD_CS_GPIO_PORT, SD_CS_PIN, GPIO_PIN_SET)
-
-/**
- * @brief LCD Control Lines management
- */
-#define LCD_CS_LOW() HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_RESET)
-#define LCD_CS_HIGH() HAL_GPIO_WritePin(LCD_CS_GPIO_PORT, LCD_CS_PIN, GPIO_PIN_SET)
-#define LCD_DC_LOW() HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_RESET)
-#define LCD_DC_HIGH() HAL_GPIO_WritePin(LCD_DC_GPIO_PORT, LCD_DC_PIN, GPIO_PIN_SET)
-
-/**
- * @brief SD Control Interface pins
- */
-#define SD_CS_PIN GPIO_PIN_5
-#define SD_CS_GPIO_PORT GPIOB
-#define SD_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
-#define SD_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
-
-/**
- * @brief LCD Control Interface pins
- */
-#define LCD_CS_PIN GPIO_PIN_6
-#define LCD_CS_GPIO_PORT GPIOB
-#define LCD_CS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
-#define LCD_CS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
-
-/**
- * @brief LCD Data/Command Interface pins
- */
-#define LCD_DC_PIN GPIO_PIN_9
-#define LCD_DC_GPIO_PORT GPIOA
-#define LCD_DC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
-#define LCD_DC_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
-
-/*##################### ADC1 ###################################*/
-/**
- * @brief ADC Interface pins
- * used to detect motion of Joystick available on Adafruit 1.8" TFT shield
- */
-#define NUCLEO_ADCx ADC1
-#define NUCLEO_ADCx_CLK_ENABLE() __HAL_RCC_ADC_CLK_ENABLE()
-
-#define NUCLEO_ADCx_GPIO_PORT GPIOB
-#define NUCLEO_ADCx_GPIO_PIN GPIO_PIN_0
-#define NUCLEO_ADCx_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
-#define NUCLEO_ADCx_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
-
-/*##################### SMPS###################################*/
-#ifdef USE_STM32L4XX_NUCLEO_64_SMPS
-
-#ifdef USE_ADP5301ACBZ /* ADP5301ACBZ */
-#define PORT_SMPS GPIOA
-#define PIN_SMPS_ENABLE GPIO_PIN_4
-#define PIN_SMPS_V1 GPIO_PIN_5
-#define PIN_SMPS_POWERGOOD GPIO_PIN_6
-#define PIN_SMPS_SWITCH_ENABLE GPIO_PIN_7
-
-#define PWR_GPIO_SMPS PWR_GPIO_A
-#define PWR_GPIO_ENABLE PWR_GPIO_BIT_4
-#define PWR_GPIO_SWITCH_ENABLE PWR_GPIO_BIT_7
-#define PWR_PU_REG PUCRA
-
-#define NUCLEO_SMPS_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
-#define NUCLEO_SMPS_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
-
-#endif /* ADP5301ACBZ */
-
-#endif /* USE_STM32L4XX_NUCLEO_64_SMPS */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/** @addtogroup STM32L4XX_NUCLEO_Exported_Functions
- * @{
- */
-uint32_t BSP_GetVersion(void);
-
-/** @addtogroup STM32L4XX_NUCLEO_LED_Functions
- * @{
- */
-void BSP_LED_Init(Led_TypeDef Led);
-void BSP_LED_On(Led_TypeDef Led);
-void BSP_LED_Off(Led_TypeDef Led);
-void BSP_LED_Toggle(Led_TypeDef Led);
-/**
- * @}
- */
-
-/** @addtogroup STM32L4XX_NUCLEO_BUTTON_Functions
- * @{
- */
-void BSP_PB_Init(Button_TypeDef Button, ButtonMode_TypeDef ButtonMode);
-uint32_t BSP_PB_GetState(Button_TypeDef Button);
-#ifdef HAL_ADC_MODULE_ENABLED
-uint8_t BSP_JOY_Init(void);
-JOYState_TypeDef BSP_JOY_GetState(void);
-#endif /* HAL_ADC_MODULE_ENABLED */
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-#ifdef USE_STM32L4XX_NUCLEO_64_SMPS
-
-/**
- * @brief SMPS OK-KO
- */
-#define SMPS_OK 0
-#define SMPS_KO 1
-
-uint32_t BSP_SMPS_DeInit(void);
-uint32_t BSP_SMPS_Init(uint32_t VoltageRange);
-uint32_t BSP_SMPS_Enable(uint32_t Delay, uint32_t Power_Good_Check);
-uint32_t BSP_SMPS_Disable(void);
-uint32_t BSP_SMPS_Supply_Enable(uint32_t Delay, uint32_t Power_Good_Check);
-uint32_t BSP_SMPS_Supply_Disable(void);
-#endif /* USE_STM32L4XX_NUCLEO_64_SMPS */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __STM32L4XX_NUCLEO_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/bsp/stm32l476-nucleo/project.uvprojx b/bsp/stm32l476-nucleo/project.uvprojx
index f89b1d858a..e99fba942b 100644
--- a/bsp/stm32l476-nucleo/project.uvprojx
+++ b/bsp/stm32l476-nucleo/project.uvprojx
@@ -399,11 +399,6 @@
1
drivers\board.c
-
- stm32l4xx_nucleo.c
- 1
- drivers\stm32l4xx_nucleo.c
-
usart.c
1