Browse Source

[bsp][stm32]Add stm32l431-tencentos-tiny-EVB_MX+ remaining drivers

Ruixuan Zhang 1 year ago
parent
commit
bc85f5aaf4

+ 15 - 1
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/.config

@@ -491,6 +491,9 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
 # CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
 #
 #
 # CONFIG_PKG_USING_CMSIS_5 is not set
 # CONFIG_PKG_USING_CMSIS_5 is not set
+# CONFIG_PKG_USING_CMSIS_CORE is not set
+# CONFIG_PKG_USING_CMSIS_DSP is not set
+# CONFIG_PKG_USING_CMSIS_NN is not set
 # CONFIG_PKG_USING_CMSIS_RTOS1 is not set
 # CONFIG_PKG_USING_CMSIS_RTOS1 is not set
 # CONFIG_PKG_USING_CMSIS_RTOS2 is not set
 # CONFIG_PKG_USING_CMSIS_RTOS2 is not set
 
 
@@ -562,6 +565,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 #
 #
 # STM32 HAL & SDK Drivers
 # STM32 HAL & SDK Drivers
 #
 #
+# CONFIG_PKG_USING_STM32L4XX_HAL_DRIVER is not set
 # CONFIG_PKG_USING_STM32WB55_SDK is not set
 # CONFIG_PKG_USING_STM32WB55_SDK is not set
 # CONFIG_PKG_USING_STM32_SDIO is not set
 # CONFIG_PKG_USING_STM32_SDIO is not set
 # CONFIG_PKG_USING_BLUETRUM_SDK is not set
 # CONFIG_PKG_USING_BLUETRUM_SDK is not set
@@ -729,6 +733,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_X9555 is not set
 # CONFIG_PKG_USING_X9555 is not set
 # CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_SYSTEM_RUN_LED is not set
 # CONFIG_PKG_USING_BT_MX01 is not set
 # CONFIG_PKG_USING_BT_MX01 is not set
+# CONFIG_PKG_USING_RGPOWER is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 
 #
 #
@@ -753,7 +758,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_UKAL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_DIGITALCTRL is not set
 # CONFIG_PKG_USING_KISSFFT is not set
 # CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
 
 
 #
 #
 # miscellaneous packages
 # miscellaneous packages
@@ -1060,7 +1064,17 @@ CONFIG_SOC_STM32L431RC=y
 #
 #
 CONFIG_BSP_USING_GPIO=y
 CONFIG_BSP_USING_GPIO=y
 CONFIG_BSP_USING_UART=y
 CONFIG_BSP_USING_UART=y
+# CONFIG_BSP_USING_UART1 is not set
 CONFIG_BSP_USING_UART2=y
 CONFIG_BSP_USING_UART2=y
+# CONFIG_BSP_USING_UART3 is not set
+# CONFIG_BSP_USING_LPUART1 is not set
+# CONFIG_BSP_USING_ADC is not set
+# CONFIG_BSP_USING_ONCHIP_RTC is not set
+# CONFIG_BSP_USING_DAC is not set
+# CONFIG_BSP_USING_SPI is not set
+# CONFIG_BSP_USING_QSPI_FLASH is not set
+# CONFIG_BSP_USING_SDCARD is not set
+# CONFIG_BSP_USING_I2C1 is not set
 # CONFIG_BSP_USING_CRC is not set
 # CONFIG_BSP_USING_CRC is not set
 # CONFIG_BSP_USING_RNG is not set
 # CONFIG_BSP_USING_RNG is not set
 # CONFIG_BSP_USING_UDID is not set
 # CONFIG_BSP_USING_UDID is not set

+ 9 - 10
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/README.md

@@ -43,18 +43,17 @@ tiny 提供精简的 RTOS 内核,内核组件可裁剪可配置,可快速移
 | **板载外设**       | **支持情况**  | **备注**                                |
 | **板载外设**       | **支持情况**  | **备注**                                |
 |:---------------|:---------:|:--------------------------------------|
 |:---------------|:---------:|:--------------------------------------|
 | USB 转串口        |    支持     | 默认Finsh串口输出端,连接至UART2                 |
 | USB 转串口        |    支持     | 默认Finsh串口输出端,连接至UART2                 |
-| SPI Flash      |   暂不支持    |                                       |
-| 以太网            |   暂不支持    |                                       |
-| SD卡            |   暂不支持    |                                       |
-| CAN            |   暂不支持    |                                       |
+| QSPI Flash      |   支持    |                                       |
+| SD卡            |   支持    |                                       |
 | **片上外设**       | **支持情况**  | **备注**                                |
 | **片上外设**       | **支持情况**  | **备注**                                |
 | GPIO           |    支持     | PA0, PA1... PK15 ---> PIN: 0, 1...176 |
 | GPIO           |    支持     | PA0, PA1... PK15 ---> PIN: 0, 1...176 |
 | UART           |    支持     | LPUART1/UART2/x                       |
 | UART           |    支持     | LPUART1/UART2/x                       |
-| SPI            |   暂不支持    | SPI1/x/x                              |
-| I2C            |   暂不支持    | 软件 I2C                                |
-| SDIO           |   暂不支持    | 即将支持                                  |
-| RTC            |   暂不支持    | 即将支持                                  |
-| PWM            |   暂不支持    | 即将支持                                  |
+| SPI            |   支持    | SPI1/3                              |
+| I2C            |   支持    | 软件 I2C                                |
+| SDIO           |   支持    |                                   |
+| RTC            |   支持    |    LSE                               |
+|ADC|支持|ADC1,(E53 LAN Interface)
+|DAC |支持|DAC1,(E53 LAN Interface)
 | **扩展模块**       | **支持情况**  | **备注**                                |
 | **扩展模块**       | **支持情况**  | **备注**                                |
 | GPS模块          |   暂不支持    | 即将支持                                  |
 | GPS模块          |   暂不支持    | 即将支持                                  |
 | BC35-G模块       |   暂不支持    | 即将支持                                  |
 | BC35-G模块       |   暂不支持    | 即将支持                                  |
@@ -106,7 +105,7 @@ msh >
 
 
 ### 进阶使用
 ### 进阶使用
 
 
-此 BSP 默认只开启了 GPIO 和 串口1 的功能,如果需使用 SD 卡、Flash 等更多高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
+此 BSP 默认只开启了 GPIO 和 UART2 的功能,如果需使用 SD 卡、Flash 等更多高级功能,需要利用 ENV 工具对BSP 进行配置,步骤如下:
 
 
 1. 在 bsp 下打开 env 工具。
 1. 在 bsp 下打开 env 工具。
 
 

+ 2 - 0
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/applications/main.c

@@ -12,6 +12,8 @@
 #include <rtdevice.h>
 #include <rtdevice.h>
 #include <board.h>
 #include <board.h>
 
 
+
+
 /* defined the LED0 pin: PC13 */
 /* defined the LED0 pin: PC13 */
 #define LED0_PIN    GET_PIN(C, 13)
 #define LED0_PIN    GET_PIN(C, 13)
 
 

File diff suppressed because it is too large
+ 0 - 0
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/CubeMX_Config/.mxproject


+ 71 - 87
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/CubeMX_Config/Core/Inc/stm32l4xx_hal_conf.h

@@ -25,7 +25,7 @@
 #define STM32L4xx_HAL_CONF_H
 #define STM32L4xx_HAL_CONF_H
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus
-extern "C" {
+ extern "C" {
 #endif
 #endif
 
 
 /* Exported types ------------------------------------------------------------*/
 /* Exported types ------------------------------------------------------------*/
@@ -36,14 +36,14 @@ extern "C" {
   * @brief This is the list of modules to be used in the HAL driver
   * @brief This is the list of modules to be used in the HAL driver
   */
   */
 #define HAL_MODULE_ENABLED
 #define HAL_MODULE_ENABLED
-/*#define HAL_ADC_MODULE_ENABLED   */
+#define HAL_ADC_MODULE_ENABLED
 /*#define HAL_CRYP_MODULE_ENABLED   */
 /*#define HAL_CRYP_MODULE_ENABLED   */
 /*#define HAL_CAN_MODULE_ENABLED   */
 /*#define HAL_CAN_MODULE_ENABLED   */
 /*#define HAL_COMP_MODULE_ENABLED   */
 /*#define HAL_COMP_MODULE_ENABLED   */
 /*#define HAL_I2C_MODULE_ENABLED   */
 /*#define HAL_I2C_MODULE_ENABLED   */
 /*#define HAL_CRC_MODULE_ENABLED   */
 /*#define HAL_CRC_MODULE_ENABLED   */
 /*#define HAL_CRYP_MODULE_ENABLED   */
 /*#define HAL_CRYP_MODULE_ENABLED   */
-/*#define HAL_DAC_MODULE_ENABLED   */
+#define HAL_DAC_MODULE_ENABLED
 /*#define HAL_DCMI_MODULE_ENABLED   */
 /*#define HAL_DCMI_MODULE_ENABLED   */
 /*#define HAL_DMA2D_MODULE_ENABLED   */
 /*#define HAL_DMA2D_MODULE_ENABLED   */
 /*#define HAL_DFSDM_MODULE_ENABLED   */
 /*#define HAL_DFSDM_MODULE_ENABLED   */
@@ -67,14 +67,14 @@ extern "C" {
 /*#define HAL_PCD_MODULE_ENABLED   */
 /*#define HAL_PCD_MODULE_ENABLED   */
 /*#define HAL_PKA_MODULE_ENABLED   */
 /*#define HAL_PKA_MODULE_ENABLED   */
 /*#define HAL_QSPI_MODULE_ENABLED   */
 /*#define HAL_QSPI_MODULE_ENABLED   */
-/*#define HAL_QSPI_MODULE_ENABLED   */
+#define HAL_QSPI_MODULE_ENABLED
 /*#define HAL_RNG_MODULE_ENABLED   */
 /*#define HAL_RNG_MODULE_ENABLED   */
-/*#define HAL_RTC_MODULE_ENABLED   */
+#define HAL_RTC_MODULE_ENABLED
 /*#define HAL_SAI_MODULE_ENABLED   */
 /*#define HAL_SAI_MODULE_ENABLED   */
-/*#define HAL_SD_MODULE_ENABLED   */
+#define HAL_SD_MODULE_ENABLED
 /*#define HAL_SMBUS_MODULE_ENABLED   */
 /*#define HAL_SMBUS_MODULE_ENABLED   */
 /*#define HAL_SMARTCARD_MODULE_ENABLED   */
 /*#define HAL_SMARTCARD_MODULE_ENABLED   */
-/*#define HAL_SPI_MODULE_ENABLED   */
+#define HAL_SPI_MODULE_ENABLED
 /*#define HAL_SRAM_MODULE_ENABLED   */
 /*#define HAL_SRAM_MODULE_ENABLED   */
 /*#define HAL_SWPMI_MODULE_ENABLED   */
 /*#define HAL_SWPMI_MODULE_ENABLED   */
 /*#define HAL_TIM_MODULE_ENABLED   */
 /*#define HAL_TIM_MODULE_ENABLED   */
@@ -99,11 +99,11 @@ extern "C" {
   *        (when HSE is used as system clock source, directly or through the PLL).
   *        (when HSE is used as system clock source, directly or through the PLL).
   */
   */
 #if !defined  (HSE_VALUE)
 #if !defined  (HSE_VALUE)
-#define HSE_VALUE    ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */
+  #define HSE_VALUE    ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */
 #endif /* HSE_VALUE */
 #endif /* HSE_VALUE */
 
 
 #if !defined  (HSE_STARTUP_TIMEOUT)
 #if !defined  (HSE_STARTUP_TIMEOUT)
-#define HSE_STARTUP_TIMEOUT    ((uint32_t)100U)   /*!< Time out for HSE start up, in ms */
+  #define HSE_STARTUP_TIMEOUT    ((uint32_t)100U)   /*!< Time out for HSE start up, in ms */
 #endif /* HSE_STARTUP_TIMEOUT */
 #endif /* HSE_STARTUP_TIMEOUT */
 
 
 /**
 /**
@@ -111,7 +111,7 @@ extern "C" {
   *        This value is the default MSI range value after Reset.
   *        This value is the default MSI range value after Reset.
   */
   */
 #if !defined  (MSI_VALUE)
 #if !defined  (MSI_VALUE)
-#define MSI_VALUE    ((uint32_t)4000000U) /*!< Value of the Internal oscillator in Hz*/
+  #define MSI_VALUE    ((uint32_t)4000000U) /*!< Value of the Internal oscillator in Hz*/
 #endif /* MSI_VALUE */
 #endif /* MSI_VALUE */
 /**
 /**
   * @brief Internal High Speed oscillator (HSI) value.
   * @brief Internal High Speed oscillator (HSI) value.
@@ -119,7 +119,7 @@ extern "C" {
   *        (when HSI is used as system clock source, directly or through the PLL).
   *        (when HSI is used as system clock source, directly or through the PLL).
   */
   */
 #if !defined  (HSI_VALUE)
 #if !defined  (HSI_VALUE)
-#define HSI_VALUE    ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/
+  #define HSI_VALUE    ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/
 #endif /* HSI_VALUE */
 #endif /* HSI_VALUE */
 
 
 /**
 /**
@@ -130,7 +130,7 @@ extern "C" {
   *        which is subject to manufacturing process variations.
   *        which is subject to manufacturing process variations.
   */
   */
 #if !defined  (HSI48_VALUE)
 #if !defined  (HSI48_VALUE)
-#define HSI48_VALUE   ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz.
+ #define HSI48_VALUE   ((uint32_t)48000000U) /*!< Value of the Internal High Speed oscillator for USB FS/SDMMC/RNG in Hz.
                                               The real value my vary depending on manufacturing process variations.*/
                                               The real value my vary depending on manufacturing process variations.*/
 #endif /* HSI48_VALUE */
 #endif /* HSI48_VALUE */
 
 
@@ -138,7 +138,7 @@ extern "C" {
   * @brief Internal Low Speed oscillator (LSI) value.
   * @brief Internal Low Speed oscillator (LSI) value.
   */
   */
 #if !defined  (LSI_VALUE)
 #if !defined  (LSI_VALUE)
-#define LSI_VALUE  32000U       /*!< LSI Typical Value in Hz*/
+ #define LSI_VALUE  32000U       /*!< LSI Typical Value in Hz*/
 #endif /* LSI_VALUE */                      /*!< Value of the Internal Low Speed oscillator in Hz
 #endif /* LSI_VALUE */                      /*!< Value of the Internal Low Speed oscillator in Hz
                                              The real value may vary depending on the variations
                                              The real value may vary depending on the variations
                                              in voltage and temperature.*/
                                              in voltage and temperature.*/
@@ -148,11 +148,11 @@ extern "C" {
   *        This value is used by the UART, RTC HAL module to compute the system frequency
   *        This value is used by the UART, RTC HAL module to compute the system frequency
   */
   */
 #if !defined  (LSE_VALUE)
 #if !defined  (LSE_VALUE)
-#define LSE_VALUE    32768U /*!< Value of the External oscillator in Hz*/
+  #define LSE_VALUE    32768U /*!< Value of the External oscillator in Hz*/
 #endif /* LSE_VALUE */
 #endif /* LSE_VALUE */
 
 
 #if !defined  (LSE_STARTUP_TIMEOUT)
 #if !defined  (LSE_STARTUP_TIMEOUT)
-#define LSE_STARTUP_TIMEOUT    5000U   /*!< Time out for LSE start up, in ms */
+  #define LSE_STARTUP_TIMEOUT    5000U   /*!< Time out for LSE start up, in ms */
 #endif /* HSE_STARTUP_TIMEOUT */
 #endif /* HSE_STARTUP_TIMEOUT */
 
 
 /**
 /**
@@ -161,7 +161,7 @@ extern "C" {
   *        frequency.
   *        frequency.
   */
   */
 #if !defined  (EXTERNAL_SAI1_CLOCK_VALUE)
 #if !defined  (EXTERNAL_SAI1_CLOCK_VALUE)
-#define EXTERNAL_SAI1_CLOCK_VALUE    2097000U /*!< Value of the SAI1 External clock source in Hz*/
+  #define EXTERNAL_SAI1_CLOCK_VALUE    2097000U /*!< Value of the SAI1 External clock source in Hz*/
 #endif /* EXTERNAL_SAI1_CLOCK_VALUE */
 #endif /* EXTERNAL_SAI1_CLOCK_VALUE */
 
 
 /**
 /**
@@ -170,7 +170,7 @@ extern "C" {
   *        frequency.
   *        frequency.
   */
   */
 #if !defined  (EXTERNAL_SAI2_CLOCK_VALUE)
 #if !defined  (EXTERNAL_SAI2_CLOCK_VALUE)
-#define EXTERNAL_SAI2_CLOCK_VALUE    48000U /*!< Value of the SAI2 External clock source in Hz*/
+  #define EXTERNAL_SAI2_CLOCK_VALUE    48000U /*!< Value of the SAI2 External clock source in Hz*/
 #endif /* EXTERNAL_SAI2_CLOCK_VALUE */
 #endif /* EXTERNAL_SAI2_CLOCK_VALUE */
 
 
 /* Tip: To avoid modifying this file each time you need to use different HSE,
 /* Tip: To avoid modifying this file each time you need to use different HSE,
@@ -181,7 +181,7 @@ extern "C" {
   * @brief This is the HAL system configuration section
   * @brief This is the HAL system configuration section
   */
   */
 
 
-#define  VDD_VALUE                      3300U /*!< Value of VDD in mv */
+#define  VDD_VALUE                    3300U /*!< Value of VDD in mv */
 #define  TICK_INT_PRIORITY            15U    /*!< tick interrupt priority */
 #define  TICK_INT_PRIORITY            15U    /*!< tick interrupt priority */
 #define  USE_RTOS                     0U
 #define  USE_RTOS                     0U
 #define  PREFETCH_ENABLE              0U
 #define  PREFETCH_ENABLE              0U
@@ -255,223 +255,207 @@ extern "C" {
   */
   */
 
 
 #ifdef HAL_RCC_MODULE_ENABLED
 #ifdef HAL_RCC_MODULE_ENABLED
-
-#include "stm32l4xx_hal_rcc.h"
-
+  #include "stm32l4xx_hal_rcc.h"
 #endif /* HAL_RCC_MODULE_ENABLED */
 #endif /* HAL_RCC_MODULE_ENABLED */
 
 
 #ifdef HAL_GPIO_MODULE_ENABLED
 #ifdef HAL_GPIO_MODULE_ENABLED
-
-#include "stm32l4xx_hal_gpio.h"
-
+  #include "stm32l4xx_hal_gpio.h"
 #endif /* HAL_GPIO_MODULE_ENABLED */
 #endif /* HAL_GPIO_MODULE_ENABLED */
 
 
 #ifdef HAL_DMA_MODULE_ENABLED
 #ifdef HAL_DMA_MODULE_ENABLED
-
-#include "stm32l4xx_hal_dma.h"
-
+  #include "stm32l4xx_hal_dma.h"
 #endif /* HAL_DMA_MODULE_ENABLED */
 #endif /* HAL_DMA_MODULE_ENABLED */
 
 
 #ifdef HAL_DFSDM_MODULE_ENABLED
 #ifdef HAL_DFSDM_MODULE_ENABLED
-#include "stm32l4xx_hal_dfsdm.h"
+  #include "stm32l4xx_hal_dfsdm.h"
 #endif /* HAL_DFSDM_MODULE_ENABLED */
 #endif /* HAL_DFSDM_MODULE_ENABLED */
 
 
 #ifdef HAL_CORTEX_MODULE_ENABLED
 #ifdef HAL_CORTEX_MODULE_ENABLED
-
-#include "stm32l4xx_hal_cortex.h"
-
+  #include "stm32l4xx_hal_cortex.h"
 #endif /* HAL_CORTEX_MODULE_ENABLED */
 #endif /* HAL_CORTEX_MODULE_ENABLED */
 
 
 #ifdef HAL_ADC_MODULE_ENABLED
 #ifdef HAL_ADC_MODULE_ENABLED
-#include "stm32l4xx_hal_adc.h"
+  #include "stm32l4xx_hal_adc.h"
 #endif /* HAL_ADC_MODULE_ENABLED */
 #endif /* HAL_ADC_MODULE_ENABLED */
 
 
 #ifdef HAL_CAN_MODULE_ENABLED
 #ifdef HAL_CAN_MODULE_ENABLED
-#include "stm32l4xx_hal_can.h"
+  #include "stm32l4xx_hal_can.h"
 #endif /* HAL_CAN_MODULE_ENABLED */
 #endif /* HAL_CAN_MODULE_ENABLED */
 
 
 #ifdef HAL_CAN_LEGACY_MODULE_ENABLED
 #ifdef HAL_CAN_LEGACY_MODULE_ENABLED
-#include "Legacy/stm32l4xx_hal_can_legacy.h"
+  #include "Legacy/stm32l4xx_hal_can_legacy.h"
 #endif /* HAL_CAN_LEGACY_MODULE_ENABLED */
 #endif /* HAL_CAN_LEGACY_MODULE_ENABLED */
 
 
 #ifdef HAL_COMP_MODULE_ENABLED
 #ifdef HAL_COMP_MODULE_ENABLED
-#include "stm32l4xx_hal_comp.h"
+  #include "stm32l4xx_hal_comp.h"
 #endif /* HAL_COMP_MODULE_ENABLED */
 #endif /* HAL_COMP_MODULE_ENABLED */
 
 
 #ifdef HAL_CRC_MODULE_ENABLED
 #ifdef HAL_CRC_MODULE_ENABLED
-#include "stm32l4xx_hal_crc.h"
+  #include "stm32l4xx_hal_crc.h"
 #endif /* HAL_CRC_MODULE_ENABLED */
 #endif /* HAL_CRC_MODULE_ENABLED */
 
 
 #ifdef HAL_CRYP_MODULE_ENABLED
 #ifdef HAL_CRYP_MODULE_ENABLED
-#include "stm32l4xx_hal_cryp.h"
+  #include "stm32l4xx_hal_cryp.h"
 #endif /* HAL_CRYP_MODULE_ENABLED */
 #endif /* HAL_CRYP_MODULE_ENABLED */
 
 
 #ifdef HAL_DAC_MODULE_ENABLED
 #ifdef HAL_DAC_MODULE_ENABLED
-#include "stm32l4xx_hal_dac.h"
+  #include "stm32l4xx_hal_dac.h"
 #endif /* HAL_DAC_MODULE_ENABLED */
 #endif /* HAL_DAC_MODULE_ENABLED */
 
 
 #ifdef HAL_DCMI_MODULE_ENABLED
 #ifdef HAL_DCMI_MODULE_ENABLED
-#include "stm32l4xx_hal_dcmi.h"
+  #include "stm32l4xx_hal_dcmi.h"
 #endif /* HAL_DCMI_MODULE_ENABLED */
 #endif /* HAL_DCMI_MODULE_ENABLED */
 
 
 #ifdef HAL_DMA2D_MODULE_ENABLED
 #ifdef HAL_DMA2D_MODULE_ENABLED
-#include "stm32l4xx_hal_dma2d.h"
+  #include "stm32l4xx_hal_dma2d.h"
 #endif /* HAL_DMA2D_MODULE_ENABLED */
 #endif /* HAL_DMA2D_MODULE_ENABLED */
 
 
 #ifdef HAL_DSI_MODULE_ENABLED
 #ifdef HAL_DSI_MODULE_ENABLED
-#include "stm32l4xx_hal_dsi.h"
+  #include "stm32l4xx_hal_dsi.h"
 #endif /* HAL_DSI_MODULE_ENABLED */
 #endif /* HAL_DSI_MODULE_ENABLED */
 
 
 #ifdef HAL_EXTI_MODULE_ENABLED
 #ifdef HAL_EXTI_MODULE_ENABLED
-
-#include "stm32l4xx_hal_exti.h"
-
+  #include "stm32l4xx_hal_exti.h"
 #endif /* HAL_EXTI_MODULE_ENABLED */
 #endif /* HAL_EXTI_MODULE_ENABLED */
 
 
 #ifdef HAL_GFXMMU_MODULE_ENABLED
 #ifdef HAL_GFXMMU_MODULE_ENABLED
-#include "stm32l4xx_hal_gfxmmu.h"
+  #include "stm32l4xx_hal_gfxmmu.h"
 #endif /* HAL_GFXMMU_MODULE_ENABLED */
 #endif /* HAL_GFXMMU_MODULE_ENABLED */
 
 
 #ifdef HAL_FIREWALL_MODULE_ENABLED
 #ifdef HAL_FIREWALL_MODULE_ENABLED
-#include "stm32l4xx_hal_firewall.h"
+  #include "stm32l4xx_hal_firewall.h"
 #endif /* HAL_FIREWALL_MODULE_ENABLED */
 #endif /* HAL_FIREWALL_MODULE_ENABLED */
 
 
 #ifdef HAL_FLASH_MODULE_ENABLED
 #ifdef HAL_FLASH_MODULE_ENABLED
-
-#include "stm32l4xx_hal_flash.h"
-
+  #include "stm32l4xx_hal_flash.h"
 #endif /* HAL_FLASH_MODULE_ENABLED */
 #endif /* HAL_FLASH_MODULE_ENABLED */
 
 
 #ifdef HAL_HASH_MODULE_ENABLED
 #ifdef HAL_HASH_MODULE_ENABLED
-#include "stm32l4xx_hal_hash.h"
+  #include "stm32l4xx_hal_hash.h"
 #endif /* HAL_HASH_MODULE_ENABLED */
 #endif /* HAL_HASH_MODULE_ENABLED */
 
 
 #ifdef HAL_HCD_MODULE_ENABLED
 #ifdef HAL_HCD_MODULE_ENABLED
-#include "stm32l4xx_hal_hcd.h"
+  #include "stm32l4xx_hal_hcd.h"
 #endif /* HAL_HCD_MODULE_ENABLED */
 #endif /* HAL_HCD_MODULE_ENABLED */
 
 
 #ifdef HAL_I2C_MODULE_ENABLED
 #ifdef HAL_I2C_MODULE_ENABLED
-#include "stm32l4xx_hal_i2c.h"
+  #include "stm32l4xx_hal_i2c.h"
 #endif /* HAL_I2C_MODULE_ENABLED */
 #endif /* HAL_I2C_MODULE_ENABLED */
 
 
 #ifdef HAL_IRDA_MODULE_ENABLED
 #ifdef HAL_IRDA_MODULE_ENABLED
-#include "stm32l4xx_hal_irda.h"
+  #include "stm32l4xx_hal_irda.h"
 #endif /* HAL_IRDA_MODULE_ENABLED */
 #endif /* HAL_IRDA_MODULE_ENABLED */
 
 
 #ifdef HAL_IWDG_MODULE_ENABLED
 #ifdef HAL_IWDG_MODULE_ENABLED
-#include "stm32l4xx_hal_iwdg.h"
+  #include "stm32l4xx_hal_iwdg.h"
 #endif /* HAL_IWDG_MODULE_ENABLED */
 #endif /* HAL_IWDG_MODULE_ENABLED */
 
 
 #ifdef HAL_LCD_MODULE_ENABLED
 #ifdef HAL_LCD_MODULE_ENABLED
-#include "stm32l4xx_hal_lcd.h"
+  #include "stm32l4xx_hal_lcd.h"
 #endif /* HAL_LCD_MODULE_ENABLED */
 #endif /* HAL_LCD_MODULE_ENABLED */
 
 
 #ifdef HAL_LPTIM_MODULE_ENABLED
 #ifdef HAL_LPTIM_MODULE_ENABLED
-#include "stm32l4xx_hal_lptim.h"
+  #include "stm32l4xx_hal_lptim.h"
 #endif /* HAL_LPTIM_MODULE_ENABLED */
 #endif /* HAL_LPTIM_MODULE_ENABLED */
 
 
 #ifdef HAL_LTDC_MODULE_ENABLED
 #ifdef HAL_LTDC_MODULE_ENABLED
-#include "stm32l4xx_hal_ltdc.h"
+  #include "stm32l4xx_hal_ltdc.h"
 #endif /* HAL_LTDC_MODULE_ENABLED */
 #endif /* HAL_LTDC_MODULE_ENABLED */
 
 
 #ifdef HAL_MMC_MODULE_ENABLED
 #ifdef HAL_MMC_MODULE_ENABLED
-#include "stm32l4xx_hal_mmc.h"
+  #include "stm32l4xx_hal_mmc.h"
 #endif /* HAL_MMC_MODULE_ENABLED */
 #endif /* HAL_MMC_MODULE_ENABLED */
 
 
 #ifdef HAL_NAND_MODULE_ENABLED
 #ifdef HAL_NAND_MODULE_ENABLED
-#include "stm32l4xx_hal_nand.h"
+  #include "stm32l4xx_hal_nand.h"
 #endif /* HAL_NAND_MODULE_ENABLED */
 #endif /* HAL_NAND_MODULE_ENABLED */
 
 
 #ifdef HAL_NOR_MODULE_ENABLED
 #ifdef HAL_NOR_MODULE_ENABLED
-#include "stm32l4xx_hal_nor.h"
+  #include "stm32l4xx_hal_nor.h"
 #endif /* HAL_NOR_MODULE_ENABLED */
 #endif /* HAL_NOR_MODULE_ENABLED */
 
 
 #ifdef HAL_OPAMP_MODULE_ENABLED
 #ifdef HAL_OPAMP_MODULE_ENABLED
-#include "stm32l4xx_hal_opamp.h"
+  #include "stm32l4xx_hal_opamp.h"
 #endif /* HAL_OPAMP_MODULE_ENABLED */
 #endif /* HAL_OPAMP_MODULE_ENABLED */
 
 
 #ifdef HAL_OSPI_MODULE_ENABLED
 #ifdef HAL_OSPI_MODULE_ENABLED
-#include "stm32l4xx_hal_ospi.h"
+  #include "stm32l4xx_hal_ospi.h"
 #endif /* HAL_OSPI_MODULE_ENABLED */
 #endif /* HAL_OSPI_MODULE_ENABLED */
 
 
 #ifdef HAL_PCD_MODULE_ENABLED
 #ifdef HAL_PCD_MODULE_ENABLED
-#include "stm32l4xx_hal_pcd.h"
+  #include "stm32l4xx_hal_pcd.h"
 #endif /* HAL_PCD_MODULE_ENABLED */
 #endif /* HAL_PCD_MODULE_ENABLED */
 
 
 #ifdef HAL_PKA_MODULE_ENABLED
 #ifdef HAL_PKA_MODULE_ENABLED
-#include "stm32l4xx_hal_pka.h"
+  #include "stm32l4xx_hal_pka.h"
 #endif /* HAL_PKA_MODULE_ENABLED */
 #endif /* HAL_PKA_MODULE_ENABLED */
 
 
 #ifdef HAL_PSSI_MODULE_ENABLED
 #ifdef HAL_PSSI_MODULE_ENABLED
-#include "stm32l4xx_hal_pssi.h"
+  #include "stm32l4xx_hal_pssi.h"
 #endif /* HAL_PSSI_MODULE_ENABLED */
 #endif /* HAL_PSSI_MODULE_ENABLED */
 
 
 #ifdef HAL_PWR_MODULE_ENABLED
 #ifdef HAL_PWR_MODULE_ENABLED
-
-#include "stm32l4xx_hal_pwr.h"
-
+  #include "stm32l4xx_hal_pwr.h"
 #endif /* HAL_PWR_MODULE_ENABLED */
 #endif /* HAL_PWR_MODULE_ENABLED */
 
 
 #ifdef HAL_QSPI_MODULE_ENABLED
 #ifdef HAL_QSPI_MODULE_ENABLED
-#include "stm32l4xx_hal_qspi.h"
+  #include "stm32l4xx_hal_qspi.h"
 #endif /* HAL_QSPI_MODULE_ENABLED */
 #endif /* HAL_QSPI_MODULE_ENABLED */
 
 
 #ifdef HAL_RNG_MODULE_ENABLED
 #ifdef HAL_RNG_MODULE_ENABLED
-#include "stm32l4xx_hal_rng.h"
+  #include "stm32l4xx_hal_rng.h"
 #endif /* HAL_RNG_MODULE_ENABLED */
 #endif /* HAL_RNG_MODULE_ENABLED */
 
 
 #ifdef HAL_RTC_MODULE_ENABLED
 #ifdef HAL_RTC_MODULE_ENABLED
-#include "stm32l4xx_hal_rtc.h"
+  #include "stm32l4xx_hal_rtc.h"
 #endif /* HAL_RTC_MODULE_ENABLED */
 #endif /* HAL_RTC_MODULE_ENABLED */
 
 
 #ifdef HAL_SAI_MODULE_ENABLED
 #ifdef HAL_SAI_MODULE_ENABLED
-#include "stm32l4xx_hal_sai.h"
+  #include "stm32l4xx_hal_sai.h"
 #endif /* HAL_SAI_MODULE_ENABLED */
 #endif /* HAL_SAI_MODULE_ENABLED */
 
 
 #ifdef HAL_SD_MODULE_ENABLED
 #ifdef HAL_SD_MODULE_ENABLED
-#include "stm32l4xx_hal_sd.h"
+  #include "stm32l4xx_hal_sd.h"
 #endif /* HAL_SD_MODULE_ENABLED */
 #endif /* HAL_SD_MODULE_ENABLED */
 
 
 #ifdef HAL_SMARTCARD_MODULE_ENABLED
 #ifdef HAL_SMARTCARD_MODULE_ENABLED
-#include "stm32l4xx_hal_smartcard.h"
+  #include "stm32l4xx_hal_smartcard.h"
 #endif /* HAL_SMARTCARD_MODULE_ENABLED */
 #endif /* HAL_SMARTCARD_MODULE_ENABLED */
 
 
 #ifdef HAL_SMBUS_MODULE_ENABLED
 #ifdef HAL_SMBUS_MODULE_ENABLED
-#include "stm32l4xx_hal_smbus.h"
+  #include "stm32l4xx_hal_smbus.h"
 #endif /* HAL_SMBUS_MODULE_ENABLED */
 #endif /* HAL_SMBUS_MODULE_ENABLED */
 
 
 #ifdef HAL_SPI_MODULE_ENABLED
 #ifdef HAL_SPI_MODULE_ENABLED
-#include "stm32l4xx_hal_spi.h"
+  #include "stm32l4xx_hal_spi.h"
 #endif /* HAL_SPI_MODULE_ENABLED */
 #endif /* HAL_SPI_MODULE_ENABLED */
 
 
 #ifdef HAL_SRAM_MODULE_ENABLED
 #ifdef HAL_SRAM_MODULE_ENABLED
-#include "stm32l4xx_hal_sram.h"
+  #include "stm32l4xx_hal_sram.h"
 #endif /* HAL_SRAM_MODULE_ENABLED */
 #endif /* HAL_SRAM_MODULE_ENABLED */
 
 
 #ifdef HAL_SWPMI_MODULE_ENABLED
 #ifdef HAL_SWPMI_MODULE_ENABLED
-#include "stm32l4xx_hal_swpmi.h"
+  #include "stm32l4xx_hal_swpmi.h"
 #endif /* HAL_SWPMI_MODULE_ENABLED */
 #endif /* HAL_SWPMI_MODULE_ENABLED */
 
 
 #ifdef HAL_TIM_MODULE_ENABLED
 #ifdef HAL_TIM_MODULE_ENABLED
-#include "stm32l4xx_hal_tim.h"
+  #include "stm32l4xx_hal_tim.h"
 #endif /* HAL_TIM_MODULE_ENABLED */
 #endif /* HAL_TIM_MODULE_ENABLED */
 
 
 #ifdef HAL_TSC_MODULE_ENABLED
 #ifdef HAL_TSC_MODULE_ENABLED
-#include "stm32l4xx_hal_tsc.h"
+  #include "stm32l4xx_hal_tsc.h"
 #endif /* HAL_TSC_MODULE_ENABLED */
 #endif /* HAL_TSC_MODULE_ENABLED */
 
 
 #ifdef HAL_UART_MODULE_ENABLED
 #ifdef HAL_UART_MODULE_ENABLED
-
-#include "stm32l4xx_hal_uart.h"
-
+  #include "stm32l4xx_hal_uart.h"
 #endif /* HAL_UART_MODULE_ENABLED */
 #endif /* HAL_UART_MODULE_ENABLED */
 
 
 #ifdef HAL_USART_MODULE_ENABLED
 #ifdef HAL_USART_MODULE_ENABLED
-#include "stm32l4xx_hal_usart.h"
+  #include "stm32l4xx_hal_usart.h"
 #endif /* HAL_USART_MODULE_ENABLED */
 #endif /* HAL_USART_MODULE_ENABLED */
 
 
 #ifdef HAL_WWDG_MODULE_ENABLED
 #ifdef HAL_WWDG_MODULE_ENABLED
-#include "stm32l4xx_hal_wwdg.h"
+  #include "stm32l4xx_hal_wwdg.h"
 #endif /* HAL_WWDG_MODULE_ENABLED */
 #endif /* HAL_WWDG_MODULE_ENABLED */
 
 
 /* Exported macro ------------------------------------------------------------*/
 /* Exported macro ------------------------------------------------------------*/
@@ -484,11 +468,11 @@ extern "C" {
   *         If expr is true, it returns no value.
   *         If expr is true, it returns no value.
   * @retval None
   * @retval None
   */
   */
-#define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
+  #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__))
 /* Exported functions ------------------------------------------------------- */
 /* Exported functions ------------------------------------------------------- */
   void assert_failed(uint8_t *file, uint32_t line);
   void assert_failed(uint8_t *file, uint32_t line);
 #else
 #else
-#define assert_param(expr) ((void)0U)
+  #define assert_param(expr) ((void)0U)
 #endif /* USE_FULL_ASSERT */
 #endif /* USE_FULL_ASSERT */
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus

+ 1 - 9
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/CubeMX_Config/Core/Inc/stm32l4xx_it.h

@@ -22,7 +22,7 @@
 #define __STM32L4xx_IT_H
 #define __STM32L4xx_IT_H
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus
-extern "C" {
+ extern "C" {
 #endif
 #endif
 
 
 /* Private includes ----------------------------------------------------------*/
 /* Private includes ----------------------------------------------------------*/
@@ -47,21 +47,13 @@ extern "C" {
 
 
 /* Exported functions prototypes ---------------------------------------------*/
 /* Exported functions prototypes ---------------------------------------------*/
 void NMI_Handler(void);
 void NMI_Handler(void);
-
 void HardFault_Handler(void);
 void HardFault_Handler(void);
-
 void MemManage_Handler(void);
 void MemManage_Handler(void);
-
 void BusFault_Handler(void);
 void BusFault_Handler(void);
-
 void UsageFault_Handler(void);
 void UsageFault_Handler(void);
-
 void SVC_Handler(void);
 void SVC_Handler(void);
-
 void DebugMon_Handler(void);
 void DebugMon_Handler(void);
-
 void PendSV_Handler(void);
 void PendSV_Handler(void);
-
 void SysTick_Handler(void);
 void SysTick_Handler(void);
 /* USER CODE BEGIN EFP */
 /* USER CODE BEGIN EFP */
 
 

+ 689 - 56
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/CubeMX_Config/Core/Src/stm32l4xx_hal_msp.c

@@ -20,7 +20,6 @@
 
 
 /* Includes ------------------------------------------------------------------*/
 /* Includes ------------------------------------------------------------------*/
 #include "main.h"
 #include "main.h"
-
 /* USER CODE BEGIN Includes */
 /* USER CODE BEGIN Includes */
 #include "drv_common.h"
 #include "drv_common.h"
 /* USER CODE END Includes */
 /* USER CODE END Includes */
@@ -61,19 +60,143 @@
 /**
 /**
   * Initializes the Global MSP.
   * Initializes the Global MSP.
   */
   */
-void HAL_MspInit(void) {
-    /* USER CODE BEGIN MspInit 0 */
+void HAL_MspInit(void)
+{
+
+  /* USER CODE BEGIN MspInit 0 */
+
+  /* USER CODE END MspInit 0 */
+
+  __HAL_RCC_SYSCFG_CLK_ENABLE();
+  __HAL_RCC_PWR_CLK_ENABLE();
+
+  /* System interrupt init*/
+
+  /* USER CODE BEGIN MspInit 1 */
+
+  /* USER CODE END MspInit 1 */
+}
+
+/**
+* @brief ADC MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hadc: ADC handle pointer
+* @retval None
+*/
+void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  if(hadc->Instance==ADC1)
+  {
+  /* USER CODE BEGIN ADC1_MspInit 0 */
+
+  /* USER CODE END ADC1_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_ADC_CLK_ENABLE();
+
+    __HAL_RCC_GPIOC_CLK_ENABLE();
+    /**ADC1 GPIO Configuration
+    PC2     ------> ADC1_IN3
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_2;
+    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG_ADC_CONTROL;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN ADC1_MspInit 1 */
+
+  /* USER CODE END ADC1_MspInit 1 */
+  }
+
+}
+
+/**
+* @brief ADC MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hadc: ADC handle pointer
+* @retval None
+*/
+void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
+{
+  if(hadc->Instance==ADC1)
+  {
+  /* USER CODE BEGIN ADC1_MspDeInit 0 */
+
+  /* USER CODE END ADC1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_ADC_CLK_DISABLE();
+
+    /**ADC1 GPIO Configuration
+    PC2     ------> ADC1_IN3
+    */
+    HAL_GPIO_DeInit(GPIOC, GPIO_PIN_2);
+
+  /* USER CODE BEGIN ADC1_MspDeInit 1 */
+
+  /* USER CODE END ADC1_MspDeInit 1 */
+  }
+
+}
+
+/**
+* @brief DAC MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hdac: DAC handle pointer
+* @retval None
+*/
+void HAL_DAC_MspInit(DAC_HandleTypeDef* hdac)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  if(hdac->Instance==DAC1)
+  {
+  /* USER CODE BEGIN DAC1_MspInit 0 */
+
+  /* USER CODE END DAC1_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_DAC1_CLK_ENABLE();
+
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    /**DAC1 GPIO Configuration
+    PA4     ------> DAC1_OUT1
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_4;
+    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN DAC1_MspInit 1 */
+
+  /* USER CODE END DAC1_MspInit 1 */
+  }
+
+}
+
+/**
+* @brief DAC MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hdac: DAC handle pointer
+* @retval None
+*/
+void HAL_DAC_MspDeInit(DAC_HandleTypeDef* hdac)
+{
+  if(hdac->Instance==DAC1)
+  {
+  /* USER CODE BEGIN DAC1_MspDeInit 0 */
 
 
-    /* USER CODE END MspInit 0 */
+  /* USER CODE END DAC1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_DAC1_CLK_DISABLE();
 
 
-    __HAL_RCC_SYSCFG_CLK_ENABLE();
-    __HAL_RCC_PWR_CLK_ENABLE();
+    /**DAC1 GPIO Configuration
+    PA4     ------> DAC1_OUT1
+    */
+    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4);
 
 
-    /* System interrupt init*/
+  /* USER CODE BEGIN DAC1_MspDeInit 1 */
 
 
-    /* USER CODE BEGIN MspInit 1 */
+  /* USER CODE END DAC1_MspDeInit 1 */
+  }
 
 
-    /* USER CODE END MspInit 1 */
 }
 }
 
 
 /**
 /**
@@ -82,42 +205,162 @@ void HAL_MspInit(void) {
 * @param huart: UART handle pointer
 * @param huart: UART handle pointer
 * @retval None
 * @retval None
 */
 */
-void HAL_UART_MspInit(UART_HandleTypeDef *huart) {
-    GPIO_InitTypeDef GPIO_InitStruct = {0};
-    RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
-    if (huart->Instance == USART2) {
-        /* USER CODE BEGIN USART2_MspInit 0 */
-
-        /* USER CODE END USART2_MspInit 0 */
-
-        /** Initializes the peripherals clock
-        */
-        PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2;
-        PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
-        if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) {
-            Error_Handler();
-        }
-
-        /* Peripheral clock enable */
-        __HAL_RCC_USART2_CLK_ENABLE();
-
-        __HAL_RCC_GPIOA_CLK_ENABLE();
-        /**USART2 GPIO Configuration
-        PA2     ------> USART2_TX
-        PA3     ------> USART2_RX
-        */
-        GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3;
-        GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
-        GPIO_InitStruct.Pull = GPIO_NOPULL;
-        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
-        GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
-        HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
-
-        /* USER CODE BEGIN USART2_MspInit 1 */
-
-        /* USER CODE END USART2_MspInit 1 */
+void HAL_UART_MspInit(UART_HandleTypeDef* huart)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+  if(huart->Instance==LPUART1)
+  {
+  /* USER CODE BEGIN LPUART1_MspInit 0 */
+
+  /* USER CODE END LPUART1_MspInit 0 */
+
+  /** Initializes the peripherals clock
+  */
+    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_LPUART1;
+    PeriphClkInit.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK1;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+    {
+      Error_Handler();
+    }
+
+    /* Peripheral clock enable */
+    __HAL_RCC_LPUART1_CLK_ENABLE();
+
+    __HAL_RCC_GPIOC_CLK_ENABLE();
+    __HAL_RCC_GPIOB_CLK_ENABLE();
+    /**LPUART1 GPIO Configuration
+    PC1     ------> LPUART1_TX
+    PB10     ------> LPUART1_RX
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_1;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
+    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+    GPIO_InitStruct.Pin = GPIO_PIN_10;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN LPUART1_MspInit 1 */
+
+  /* USER CODE END LPUART1_MspInit 1 */
+  }
+  else if(huart->Instance==USART1)
+  {
+  /* USER CODE BEGIN USART1_MspInit 0 */
+
+  /* USER CODE END USART1_MspInit 0 */
+
+  /** Initializes the peripherals clock
+  */
+    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1;
+    PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+    {
+      Error_Handler();
+    }
+
+    /* Peripheral clock enable */
+    __HAL_RCC_USART1_CLK_ENABLE();
+
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    /**USART1 GPIO Configuration
+    PA9     ------> USART1_TX
+    PA10     ------> USART1_RX
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN USART1_MspInit 1 */
+
+  /* USER CODE END USART1_MspInit 1 */
+  }
+  else if(huart->Instance==USART2)
+  {
+  /* USER CODE BEGIN USART2_MspInit 0 */
+
+  /* USER CODE END USART2_MspInit 0 */
+
+  /** Initializes the peripherals clock
+  */
+    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2;
+    PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+    {
+      Error_Handler();
     }
     }
 
 
+    /* Peripheral clock enable */
+    __HAL_RCC_USART2_CLK_ENABLE();
+
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    /**USART2 GPIO Configuration
+    PA2     ------> USART2_TX
+    PA15 (JTDI)     ------> USART2_RX
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_2;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+    GPIO_InitStruct.Pin = GPIO_PIN_15;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF3_USART2;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN USART2_MspInit 1 */
+
+  /* USER CODE END USART2_MspInit 1 */
+  }
+  else if(huart->Instance==USART3)
+  {
+  /* USER CODE BEGIN USART3_MspInit 0 */
+
+  /* USER CODE END USART3_MspInit 0 */
+
+  /** Initializes the peripherals clock
+  */
+    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART3;
+    PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+    {
+      Error_Handler();
+    }
+
+    /* Peripheral clock enable */
+    __HAL_RCC_USART3_CLK_ENABLE();
+
+    __HAL_RCC_GPIOC_CLK_ENABLE();
+    /**USART3 GPIO Configuration
+    PC4     ------> USART3_TX
+    PC5     ------> USART3_RX
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
+    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN USART3_MspInit 1 */
+
+  /* USER CODE END USART3_MspInit 1 */
+  }
+
 }
 }
 
 
 /**
 /**
@@ -126,25 +369,415 @@ void HAL_UART_MspInit(UART_HandleTypeDef *huart) {
 * @param huart: UART handle pointer
 * @param huart: UART handle pointer
 * @retval None
 * @retval None
 */
 */
-void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) {
-    if (huart->Instance == USART2) {
-        /* USER CODE BEGIN USART2_MspDeInit 0 */
+void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
+{
+  if(huart->Instance==LPUART1)
+  {
+  /* USER CODE BEGIN LPUART1_MspDeInit 0 */
+
+  /* USER CODE END LPUART1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_LPUART1_CLK_DISABLE();
+
+    /**LPUART1 GPIO Configuration
+    PC1     ------> LPUART1_TX
+    PB10     ------> LPUART1_RX
+    */
+    HAL_GPIO_DeInit(GPIOC, GPIO_PIN_1);
+
+    HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10);
+
+  /* USER CODE BEGIN LPUART1_MspDeInit 1 */
+
+  /* USER CODE END LPUART1_MspDeInit 1 */
+  }
+  else if(huart->Instance==USART1)
+  {
+  /* USER CODE BEGIN USART1_MspDeInit 0 */
+
+  /* USER CODE END USART1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_USART1_CLK_DISABLE();
+
+    /**USART1 GPIO Configuration
+    PA9     ------> USART1_TX
+    PA10     ------> USART1_RX
+    */
+    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
+
+  /* USER CODE BEGIN USART1_MspDeInit 1 */
+
+  /* USER CODE END USART1_MspDeInit 1 */
+  }
+  else if(huart->Instance==USART2)
+  {
+  /* USER CODE BEGIN USART2_MspDeInit 0 */
+
+  /* USER CODE END USART2_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_USART2_CLK_DISABLE();
+
+    /**USART2 GPIO Configuration
+    PA2     ------> USART2_TX
+    PA15 (JTDI)     ------> USART2_RX
+    */
+    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2|GPIO_PIN_15);
+
+  /* USER CODE BEGIN USART2_MspDeInit 1 */
+
+  /* USER CODE END USART2_MspDeInit 1 */
+  }
+  else if(huart->Instance==USART3)
+  {
+  /* USER CODE BEGIN USART3_MspDeInit 0 */
+
+  /* USER CODE END USART3_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_USART3_CLK_DISABLE();
+
+    /**USART3 GPIO Configuration
+    PC4     ------> USART3_TX
+    PC5     ------> USART3_RX
+    */
+    HAL_GPIO_DeInit(GPIOC, GPIO_PIN_4|GPIO_PIN_5);
+
+  /* USER CODE BEGIN USART3_MspDeInit 1 */
+
+  /* USER CODE END USART3_MspDeInit 1 */
+  }
+
+}
+
+/**
+* @brief QSPI MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hqspi: QSPI handle pointer
+* @retval None
+*/
+void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  if(hqspi->Instance==QUADSPI)
+  {
+  /* USER CODE BEGIN QUADSPI_MspInit 0 */
+
+  /* USER CODE END QUADSPI_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_QSPI_CLK_ENABLE();
+
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    __HAL_RCC_GPIOB_CLK_ENABLE();
+    /**QUADSPI GPIO Configuration
+    PA3     ------> QUADSPI_CLK
+    PB0     ------> QUADSPI_BK1_IO1
+    PB1     ------> QUADSPI_BK1_IO0
+    PB11     ------> QUADSPI_BK1_NCS
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_3;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+    GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_11;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN QUADSPI_MspInit 1 */
+
+  /* USER CODE END QUADSPI_MspInit 1 */
+  }
+
+}
+
+/**
+* @brief QSPI MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hqspi: QSPI handle pointer
+* @retval None
+*/
+void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)
+{
+  if(hqspi->Instance==QUADSPI)
+  {
+  /* USER CODE BEGIN QUADSPI_MspDeInit 0 */
+
+  /* USER CODE END QUADSPI_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_QSPI_CLK_DISABLE();
+
+    /**QUADSPI GPIO Configuration
+    PA3     ------> QUADSPI_CLK
+    PB0     ------> QUADSPI_BK1_IO1
+    PB1     ------> QUADSPI_BK1_IO0
+    PB11     ------> QUADSPI_BK1_NCS
+    */
+    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_3);
+
+    HAL_GPIO_DeInit(GPIOB, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_11);
 
 
-        /* USER CODE END USART2_MspDeInit 0 */
-        /* Peripheral clock disable */
-        __HAL_RCC_USART2_CLK_DISABLE();
+  /* USER CODE BEGIN QUADSPI_MspDeInit 1 */
 
 
-        /**USART2 GPIO Configuration
-        PA2     ------> USART2_TX
-        PA3     ------> USART2_RX
-        */
-        HAL_GPIO_DeInit(GPIOA, GPIO_PIN_2 | GPIO_PIN_3);
+  /* USER CODE END QUADSPI_MspDeInit 1 */
+  }
+
+}
+
+/**
+* @brief RTC MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hrtc: RTC handle pointer
+* @retval None
+*/
+void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
+{
+  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+  if(hrtc->Instance==RTC)
+  {
+  /* USER CODE BEGIN RTC_MspInit 0 */
 
 
-        /* USER CODE BEGIN USART2_MspDeInit 1 */
+  /* USER CODE END RTC_MspInit 0 */
 
 
-        /* USER CODE END USART2_MspDeInit 1 */
+  /** Initializes the peripherals clock
+  */
+    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_RTC;
+    PeriphClkInit.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
+    {
+      Error_Handler();
     }
     }
 
 
+    /* Peripheral clock enable */
+    __HAL_RCC_RTC_ENABLE();
+  /* USER CODE BEGIN RTC_MspInit 1 */
+
+  /* USER CODE END RTC_MspInit 1 */
+  }
+
+}
+
+/**
+* @brief RTC MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hrtc: RTC handle pointer
+* @retval None
+*/
+void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
+{
+  if(hrtc->Instance==RTC)
+  {
+  /* USER CODE BEGIN RTC_MspDeInit 0 */
+
+  /* USER CODE END RTC_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_RTC_DISABLE();
+  /* USER CODE BEGIN RTC_MspDeInit 1 */
+
+  /* USER CODE END RTC_MspDeInit 1 */
+  }
+
+}
+
+/**
+* @brief SD MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hsd: SD handle pointer
+* @retval None
+*/
+void HAL_SD_MspInit(SD_HandleTypeDef* hsd)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  if(hsd->Instance==SDMMC1)
+  {
+  /* USER CODE BEGIN SDMMC1_MspInit 0 */
+
+  /* USER CODE END SDMMC1_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_SDMMC1_CLK_ENABLE();
+
+    __HAL_RCC_GPIOC_CLK_ENABLE();
+    __HAL_RCC_GPIOD_CLK_ENABLE();
+    /**SDMMC1 GPIO Configuration
+    PC8     ------> SDMMC1_D0
+    PC12     ------> SDMMC1_CK
+    PD2     ------> SDMMC1_CMD
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_12;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
+    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+    GPIO_InitStruct.Pin = GPIO_PIN_2;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF12_SDMMC1;
+    HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN SDMMC1_MspInit 1 */
+
+  /* USER CODE END SDMMC1_MspInit 1 */
+  }
+
+}
+
+/**
+* @brief SD MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hsd: SD handle pointer
+* @retval None
+*/
+void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
+{
+  if(hsd->Instance==SDMMC1)
+  {
+  /* USER CODE BEGIN SDMMC1_MspDeInit 0 */
+
+  /* USER CODE END SDMMC1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_SDMMC1_CLK_DISABLE();
+
+    /**SDMMC1 GPIO Configuration
+    PC8     ------> SDMMC1_D0
+    PC12     ------> SDMMC1_CK
+    PD2     ------> SDMMC1_CMD
+    */
+    HAL_GPIO_DeInit(GPIOC, GPIO_PIN_8|GPIO_PIN_12);
+
+    HAL_GPIO_DeInit(GPIOD, GPIO_PIN_2);
+
+  /* USER CODE BEGIN SDMMC1_MspDeInit 1 */
+
+  /* USER CODE END SDMMC1_MspDeInit 1 */
+  }
+
+}
+
+/**
+* @brief SPI MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hspi: SPI handle pointer
+* @retval None
+*/
+void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  if(hspi->Instance==SPI1)
+  {
+  /* USER CODE BEGIN SPI1_MspInit 0 */
+
+  /* USER CODE END SPI1_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_SPI1_CLK_ENABLE();
+
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    /**SPI1 GPIO Configuration
+    PA1     ------> SPI1_SCK
+    PA6     ------> SPI1_MISO
+    PA12     ------> SPI1_MOSI
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_6|GPIO_PIN_12;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN SPI1_MspInit 1 */
+
+  /* USER CODE END SPI1_MspInit 1 */
+  }
+  else if(hspi->Instance==SPI3)
+  {
+  /* USER CODE BEGIN SPI3_MspInit 0 */
+
+  /* USER CODE END SPI3_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_SPI3_CLK_ENABLE();
+
+    __HAL_RCC_GPIOC_CLK_ENABLE();
+    __HAL_RCC_GPIOB_CLK_ENABLE();
+    /**SPI3 GPIO Configuration
+    PC10     ------> SPI3_SCK
+    PC11     ------> SPI3_MISO
+    PB5     ------> SPI3_MOSI
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
+    HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+    GPIO_InitStruct.Pin = GPIO_PIN_5;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF6_SPI3;
+    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN SPI3_MspInit 1 */
+
+  /* USER CODE END SPI3_MspInit 1 */
+  }
+
+}
+
+/**
+* @brief SPI MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hspi: SPI handle pointer
+* @retval None
+*/
+void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
+{
+  if(hspi->Instance==SPI1)
+  {
+  /* USER CODE BEGIN SPI1_MspDeInit 0 */
+
+  /* USER CODE END SPI1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_SPI1_CLK_DISABLE();
+
+    /**SPI1 GPIO Configuration
+    PA1     ------> SPI1_SCK
+    PA6     ------> SPI1_MISO
+    PA12     ------> SPI1_MOSI
+    */
+    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_1|GPIO_PIN_6|GPIO_PIN_12);
+
+  /* USER CODE BEGIN SPI1_MspDeInit 1 */
+
+  /* USER CODE END SPI1_MspDeInit 1 */
+  }
+  else if(hspi->Instance==SPI3)
+  {
+  /* USER CODE BEGIN SPI3_MspDeInit 0 */
+
+  /* USER CODE END SPI3_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_SPI3_CLK_DISABLE();
+
+    /**SPI3 GPIO Configuration
+    PC10     ------> SPI3_SCK
+    PC11     ------> SPI3_MISO
+    PB5     ------> SPI3_MOSI
+    */
+    HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11);
+
+    HAL_GPIO_DeInit(GPIOB, GPIO_PIN_5);
+
+  /* USER CODE BEGIN SPI3_MspDeInit 1 */
+
+  /* USER CODE END SPI3_MspDeInit 1 */
+  }
+
 }
 }
 
 
 /* USER CODE BEGIN 1 */
 /* USER CODE BEGIN 1 */

+ 71 - 58
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/CubeMX_Config/Core/Src/stm32l4xx_it.c

@@ -66,115 +66,128 @@
 /**
 /**
   * @brief This function handles Non maskable interrupt.
   * @brief This function handles Non maskable interrupt.
   */
   */
-void NMI_Handler(void) {
-    /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
+void NMI_Handler(void)
+{
+  /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
 
 
-    /* USER CODE END NonMaskableInt_IRQn 0 */
-    /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
+  /* USER CODE END NonMaskableInt_IRQn 0 */
+  /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
     while (1) {
     while (1) {
     }
     }
-    /* USER CODE END NonMaskableInt_IRQn 1 */
+  /* USER CODE END NonMaskableInt_IRQn 1 */
 }
 }
 
 
 /**
 /**
   * @brief This function handles Hard fault interrupt.
   * @brief This function handles Hard fault interrupt.
   */
   */
-void HardFault_Handler(void) {
-    /* USER CODE BEGIN HardFault_IRQn 0 */
-
-    /* USER CODE END HardFault_IRQn 0 */
-    while (1) {
-        /* USER CODE BEGIN W1_HardFault_IRQn 0 */
-        /* USER CODE END W1_HardFault_IRQn 0 */
-    }
+void HardFault_Handler(void)
+{
+  /* USER CODE BEGIN HardFault_IRQn 0 */
+
+  /* USER CODE END HardFault_IRQn 0 */
+  while (1)
+  {
+    /* USER CODE BEGIN W1_HardFault_IRQn 0 */
+    /* USER CODE END W1_HardFault_IRQn 0 */
+  }
 }
 }
 
 
 /**
 /**
   * @brief This function handles Memory management fault.
   * @brief This function handles Memory management fault.
   */
   */
-void MemManage_Handler(void) {
-    /* USER CODE BEGIN MemoryManagement_IRQn 0 */
-
-    /* USER CODE END MemoryManagement_IRQn 0 */
-    while (1) {
-        /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
-        /* USER CODE END W1_MemoryManagement_IRQn 0 */
-    }
+void MemManage_Handler(void)
+{
+  /* USER CODE BEGIN MemoryManagement_IRQn 0 */
+
+  /* USER CODE END MemoryManagement_IRQn 0 */
+  while (1)
+  {
+    /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
+    /* USER CODE END W1_MemoryManagement_IRQn 0 */
+  }
 }
 }
 
 
 /**
 /**
   * @brief This function handles Prefetch fault, memory access fault.
   * @brief This function handles Prefetch fault, memory access fault.
   */
   */
-void BusFault_Handler(void) {
-    /* USER CODE BEGIN BusFault_IRQn 0 */
-
-    /* USER CODE END BusFault_IRQn 0 */
-    while (1) {
-        /* USER CODE BEGIN W1_BusFault_IRQn 0 */
-        /* USER CODE END W1_BusFault_IRQn 0 */
-    }
+void BusFault_Handler(void)
+{
+  /* USER CODE BEGIN BusFault_IRQn 0 */
+
+  /* USER CODE END BusFault_IRQn 0 */
+  while (1)
+  {
+    /* USER CODE BEGIN W1_BusFault_IRQn 0 */
+    /* USER CODE END W1_BusFault_IRQn 0 */
+  }
 }
 }
 
 
 /**
 /**
   * @brief This function handles Undefined instruction or illegal state.
   * @brief This function handles Undefined instruction or illegal state.
   */
   */
-void UsageFault_Handler(void) {
-    /* USER CODE BEGIN UsageFault_IRQn 0 */
-
-    /* USER CODE END UsageFault_IRQn 0 */
-    while (1) {
-        /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
-        /* USER CODE END W1_UsageFault_IRQn 0 */
-    }
+void UsageFault_Handler(void)
+{
+  /* USER CODE BEGIN UsageFault_IRQn 0 */
+
+  /* USER CODE END UsageFault_IRQn 0 */
+  while (1)
+  {
+    /* USER CODE BEGIN W1_UsageFault_IRQn 0 */
+    /* USER CODE END W1_UsageFault_IRQn 0 */
+  }
 }
 }
 
 
 /**
 /**
   * @brief This function handles System service call via SWI instruction.
   * @brief This function handles System service call via SWI instruction.
   */
   */
-void SVC_Handler(void) {
-    /* USER CODE BEGIN SVCall_IRQn 0 */
+void SVC_Handler(void)
+{
+  /* USER CODE BEGIN SVCall_IRQn 0 */
 
 
-    /* USER CODE END SVCall_IRQn 0 */
-    /* USER CODE BEGIN SVCall_IRQn 1 */
+  /* USER CODE END SVCall_IRQn 0 */
+  /* USER CODE BEGIN SVCall_IRQn 1 */
 
 
-    /* USER CODE END SVCall_IRQn 1 */
+  /* USER CODE END SVCall_IRQn 1 */
 }
 }
 
 
 /**
 /**
   * @brief This function handles Debug monitor.
   * @brief This function handles Debug monitor.
   */
   */
-void DebugMon_Handler(void) {
-    /* USER CODE BEGIN DebugMonitor_IRQn 0 */
+void DebugMon_Handler(void)
+{
+  /* USER CODE BEGIN DebugMonitor_IRQn 0 */
 
 
-    /* USER CODE END DebugMonitor_IRQn 0 */
-    /* USER CODE BEGIN DebugMonitor_IRQn 1 */
+  /* USER CODE END DebugMonitor_IRQn 0 */
+  /* USER CODE BEGIN DebugMonitor_IRQn 1 */
 
 
-    /* USER CODE END DebugMonitor_IRQn 1 */
+  /* USER CODE END DebugMonitor_IRQn 1 */
 }
 }
 
 
 /**
 /**
   * @brief This function handles Pendable request for system service.
   * @brief This function handles Pendable request for system service.
   */
   */
-void PendSV_Handler(void) {
-    /* USER CODE BEGIN PendSV_IRQn 0 */
+void PendSV_Handler(void)
+{
+  /* USER CODE BEGIN PendSV_IRQn 0 */
 
 
-    /* USER CODE END PendSV_IRQn 0 */
-    /* USER CODE BEGIN PendSV_IRQn 1 */
+  /* USER CODE END PendSV_IRQn 0 */
+  /* USER CODE BEGIN PendSV_IRQn 1 */
 
 
-    /* USER CODE END PendSV_IRQn 1 */
+  /* USER CODE END PendSV_IRQn 1 */
 }
 }
 
 
 /**
 /**
   * @brief This function handles System tick timer.
   * @brief This function handles System tick timer.
   */
   */
-void SysTick_Handler(void) {
-    /* USER CODE BEGIN SysTick_IRQn 0 */
+void SysTick_Handler(void)
+{
+  /* USER CODE BEGIN SysTick_IRQn 0 */
 
 
-    /* USER CODE END SysTick_IRQn 0 */
-    HAL_IncTick();
-    /* USER CODE BEGIN SysTick_IRQn 1 */
+  /* USER CODE END SysTick_IRQn 0 */
+  HAL_IncTick();
+  /* USER CODE BEGIN SysTick_IRQn 1 */
 
 
-    /* USER CODE END SysTick_IRQn 1 */
+  /* USER CODE END SysTick_IRQn 1 */
 }
 }
 
 
 /******************************************************************************/
 /******************************************************************************/

+ 131 - 21
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/CubeMX_Config/CubeMX_Config.ioc

@@ -1,4 +1,12 @@
 #MicroXplorer Configuration settings - do not modify
 #MicroXplorer Configuration settings - do not modify
+ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_3
+ADC1.CommonPathInternal=null|null|null|null
+ADC1.IPParameters=Rank-0\#ChannelRegularConversion,master,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,OffsetNumber-0\#ChannelRegularConversion,NbrOfConversionFlag,CommonPathInternal
+ADC1.NbrOfConversionFlag=1
+ADC1.OffsetNumber-0\#ChannelRegularConversion=ADC_OFFSET_NONE
+ADC1.Rank-0\#ChannelRegularConversion=1
+ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5
+ADC1.master=1
 CAD.formats=
 CAD.formats=
 CAD.pinconfig=
 CAD.pinconfig=
 CAD.provider=
 CAD.provider=
@@ -7,27 +15,61 @@ GPIO.groupedBy=
 KeepUserPlacement=false
 KeepUserPlacement=false
 Mcu.CPN=STM32L431RCT6
 Mcu.CPN=STM32L431RCT6
 Mcu.Family=STM32L4
 Mcu.Family=STM32L4
-Mcu.IP0=NVIC
-Mcu.IP1=RCC
-Mcu.IP2=SYS
-Mcu.IP3=USART2
-Mcu.IPNb=4
+Mcu.IP0=ADC1
+Mcu.IP1=DAC1
+Mcu.IP10=SYS
+Mcu.IP11=USART1
+Mcu.IP12=USART2
+Mcu.IP13=USART3
+Mcu.IP2=LPUART1
+Mcu.IP3=NVIC
+Mcu.IP4=QUADSPI
+Mcu.IP5=RCC
+Mcu.IP6=RTC
+Mcu.IP7=SDMMC1
+Mcu.IP8=SPI1
+Mcu.IP9=SPI3
+Mcu.IPNb=14
 Mcu.Name=STM32L431R(B-C)Tx
 Mcu.Name=STM32L431R(B-C)Tx
 Mcu.Package=LQFP64
 Mcu.Package=LQFP64
 Mcu.Pin0=PC13
 Mcu.Pin0=PC13
-Mcu.Pin1=PH0-OSC_IN (PH0)
-Mcu.Pin2=PH1-OSC_OUT (PH1)
-Mcu.Pin3=PA2
-Mcu.Pin4=PA3
-Mcu.Pin5=PA13 (JTMS-SWDIO)
-Mcu.Pin6=PA14 (JTCK-SWCLK)
-Mcu.Pin7=VP_SYS_VS_Systick
-Mcu.PinsNb=8
+Mcu.Pin1=PC14-OSC32_IN (PC14)
+Mcu.Pin10=PA4
+Mcu.Pin11=PA6
+Mcu.Pin12=PC4
+Mcu.Pin13=PC5
+Mcu.Pin14=PB0
+Mcu.Pin15=PB1
+Mcu.Pin16=PB10
+Mcu.Pin17=PB11
+Mcu.Pin18=PC8
+Mcu.Pin19=PA9
+Mcu.Pin2=PC15-OSC32_OUT (PC15)
+Mcu.Pin20=PA10
+Mcu.Pin21=PA12
+Mcu.Pin22=PA13 (JTMS-SWDIO)
+Mcu.Pin23=PA14 (JTCK-SWCLK)
+Mcu.Pin24=PA15 (JTDI)
+Mcu.Pin25=PC10
+Mcu.Pin26=PC11
+Mcu.Pin27=PC12
+Mcu.Pin28=PD2
+Mcu.Pin29=PB5
+Mcu.Pin3=PH0-OSC_IN (PH0)
+Mcu.Pin30=VP_RTC_VS_RTC_Activate
+Mcu.Pin31=VP_SYS_VS_Systick
+Mcu.Pin4=PH1-OSC_OUT (PH1)
+Mcu.Pin5=PC1
+Mcu.Pin6=PC2
+Mcu.Pin7=PA1
+Mcu.Pin8=PA2
+Mcu.Pin9=PA3
+Mcu.PinsNb=32
 Mcu.ThirdPartyNb=0
 Mcu.ThirdPartyNb=0
 Mcu.UserConstants=
 Mcu.UserConstants=
 Mcu.UserName=STM32L431RCTx
 Mcu.UserName=STM32L431RCTx
-MxCube.Version=6.9.2
-MxDb.Version=DB.6.0.92
+MxCube.Version=6.11.0
+MxDb.Version=DB.6.0.110
 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.ForceEnableDMAVector=true
 NVIC.ForceEnableDMAVector=true
@@ -39,16 +81,61 @@ NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
 NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
 NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+PA1.Mode=Full_Duplex_Master
+PA1.Signal=SPI1_SCK
+PA10.Mode=Asynchronous
+PA10.Signal=USART1_RX
+PA12.Locked=true
+PA12.Mode=Full_Duplex_Master
+PA12.Signal=SPI1_MOSI
 PA13\ (JTMS-SWDIO).Mode=Serial_Wire
 PA13\ (JTMS-SWDIO).Mode=Serial_Wire
 PA13\ (JTMS-SWDIO).Signal=SYS_JTMS-SWDIO
 PA13\ (JTMS-SWDIO).Signal=SYS_JTMS-SWDIO
 PA14\ (JTCK-SWCLK).Mode=Serial_Wire
 PA14\ (JTCK-SWCLK).Mode=Serial_Wire
 PA14\ (JTCK-SWCLK).Signal=SYS_JTCK-SWCLK
 PA14\ (JTCK-SWCLK).Signal=SYS_JTCK-SWCLK
+PA15\ (JTDI).Mode=Asynchronous
+PA15\ (JTDI).Signal=USART2_RX
 PA2.Mode=Asynchronous
 PA2.Mode=Asynchronous
 PA2.Signal=USART2_TX
 PA2.Signal=USART2_TX
-PA3.Mode=Asynchronous
-PA3.Signal=USART2_RX
+PA3.Mode=Single Bank 1 2IOs
+PA3.Signal=QUADSPI_CLK
+PA4.Signal=COMP_DAC11_group
+PA6.Mode=Full_Duplex_Master
+PA6.Signal=SPI1_MISO
+PA9.Mode=Asynchronous
+PA9.Signal=USART1_TX
+PB0.Mode=Single Bank 1 2IOs
+PB0.Signal=QUADSPI_BK1_IO1
+PB1.Mode=Single Bank 1 2IOs
+PB1.Signal=QUADSPI_BK1_IO0
+PB10.Mode=Asynchronous
+PB10.Signal=LPUART1_RX
+PB11.Mode=Single Bank 1 2IOs
+PB11.Signal=QUADSPI_BK1_NCS
+PB5.Mode=Full_Duplex_Master
+PB5.Signal=SPI3_MOSI
+PC1.Mode=Asynchronous
+PC1.Signal=LPUART1_TX
+PC10.Mode=Full_Duplex_Master
+PC10.Signal=SPI3_SCK
+PC11.Mode=Full_Duplex_Master
+PC11.Signal=SPI3_MISO
+PC12.Mode=SD_1_bit
+PC12.Signal=SDMMC1_CK
 PC13.Locked=true
 PC13.Locked=true
 PC13.Signal=GPIO_Output
 PC13.Signal=GPIO_Output
+PC14-OSC32_IN\ (PC14).Mode=LSE-External-Oscillator
+PC14-OSC32_IN\ (PC14).Signal=RCC_OSC32_IN
+PC15-OSC32_OUT\ (PC15).Mode=LSE-External-Oscillator
+PC15-OSC32_OUT\ (PC15).Signal=RCC_OSC32_OUT
+PC2.Signal=ADCx_IN3
+PC4.Mode=Asynchronous
+PC4.Signal=USART3_TX
+PC5.Mode=Asynchronous
+PC5.Signal=USART3_RX
+PC8.Mode=SD_1_bit
+PC8.Signal=SDMMC1_D0
+PD2.Mode=SD_1_bit
+PD2.Signal=SDMMC1_CMD
 PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
 PH0-OSC_IN\ (PH0).Mode=HSE-External-Oscillator
 PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
 PH0-OSC_IN\ (PH0).Signal=RCC_OSC_IN
 PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator
 PH1-OSC_OUT\ (PH1).Mode=HSE-External-Oscillator
@@ -72,7 +159,7 @@ ProjectManager.LastFirmware=true
 ProjectManager.LibraryCopy=0
 ProjectManager.LibraryCopy=0
 ProjectManager.MainLocation=Core/Src
 ProjectManager.MainLocation=Core/Src
 ProjectManager.NoMain=false
 ProjectManager.NoMain=false
-ProjectManager.PreviousToolchain=
+ProjectManager.PreviousToolchain=STM32CubeIDE
 ProjectManager.ProjectBuild=false
 ProjectManager.ProjectBuild=false
 ProjectManager.ProjectFileName=CubeMX_Config.ioc
 ProjectManager.ProjectFileName=CubeMX_Config.ioc
 ProjectManager.ProjectName=CubeMX_Config
 ProjectManager.ProjectName=CubeMX_Config
@@ -84,7 +171,9 @@ ProjectManager.ToolChainLocation=
 ProjectManager.UAScriptAfterPath=
 ProjectManager.UAScriptAfterPath=
 ProjectManager.UAScriptBeforePath=
 ProjectManager.UAScriptBeforePath=
 ProjectManager.UnderRoot=false
 ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART2_UART_Init-USART2-false-HAL-true
+ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_USART2_UART_Init-USART2-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-MX_DAC1_Init-DAC1-false-HAL-true,6-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,8-MX_USART3_UART_Init-USART3-false-HAL-true,9-MX_QUADSPI_Init-QUADSPI-false-HAL-true,10-MX_SDMMC1_SD_Init-SDMMC1-false-HAL-true,11-MX_SPI1_Init-SPI1-false-HAL-true,12-MX_SPI3_Init-SPI3-false-HAL-true,13-MX_RTC_Init-RTC-false-HAL-true
+QUADSPI.FlashSize=7
+QUADSPI.IPParameters=FlashSize
 RCC.ADCFreq_Value=32000000
 RCC.ADCFreq_Value=32000000
 RCC.AHBFreq_Value=80000000
 RCC.AHBFreq_Value=80000000
 RCC.APB1Freq_Value=80000000
 RCC.APB1Freq_Value=80000000
@@ -101,12 +190,11 @@ RCC.HSI_VALUE=16000000
 RCC.I2C1Freq_Value=80000000
 RCC.I2C1Freq_Value=80000000
 RCC.I2C2Freq_Value=80000000
 RCC.I2C2Freq_Value=80000000
 RCC.I2C3Freq_Value=80000000
 RCC.I2C3Freq_Value=80000000
-RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,MSI_VALUE,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSourceVirtual,PWRFreq_Value,RNGFreq_Value,SAI1Freq_Value,SDMMCFreq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
+RCC.IPParameters=ADCFreq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSI_VALUE,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSourceVirtual,PWRFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SDMMCFreq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
 RCC.LPTIM1Freq_Value=80000000
 RCC.LPTIM1Freq_Value=80000000
 RCC.LPTIM2Freq_Value=80000000
 RCC.LPTIM2Freq_Value=80000000
 RCC.LPUART1Freq_Value=80000000
 RCC.LPUART1Freq_Value=80000000
 RCC.LSCOPinFreq_Value=32000
 RCC.LSCOPinFreq_Value=32000
-RCC.LSE_VALUE=32768
 RCC.LSI_VALUE=32000
 RCC.LSI_VALUE=32000
 RCC.MCO1PinFreq_Value=80000000
 RCC.MCO1PinFreq_Value=80000000
 RCC.MSI_VALUE=4000000
 RCC.MSI_VALUE=4000000
@@ -120,6 +208,8 @@ RCC.PLLSAI1RoutputFreq_Value=32000000
 RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
 RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
 RCC.PWRFreq_Value=80000000
 RCC.PWRFreq_Value=80000000
 RCC.RNGFreq_Value=32000000
 RCC.RNGFreq_Value=32000000
+RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
+RCC.RTCFreq_Value=32768
 RCC.SAI1Freq_Value=9142857.142857144
 RCC.SAI1Freq_Value=9142857.142857144
 RCC.SDMMCFreq_Value=32000000
 RCC.SDMMCFreq_Value=32000000
 RCC.SWPMI1Freq_Value=80000000
 RCC.SWPMI1Freq_Value=80000000
@@ -131,8 +221,28 @@ RCC.USART3Freq_Value=80000000
 RCC.VCOInputFreq_Value=8000000
 RCC.VCOInputFreq_Value=8000000
 RCC.VCOOutputFreq_Value=160000000
 RCC.VCOOutputFreq_Value=160000000
 RCC.VCOSAI1OutputFreq_Value=64000000
 RCC.VCOSAI1OutputFreq_Value=64000000
+SH.ADCx_IN3.0=ADC1_IN3,IN3-Single-Ended
+SH.ADCx_IN3.ConfNb=1
+SH.COMP_DAC11_group.0=DAC1_OUT1,DAC_OUT1
+SH.COMP_DAC11_group.ConfNb=1
+SPI1.CalculateBaudRate=40.0 MBits/s
+SPI1.Direction=SPI_DIRECTION_2LINES
+SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
+SPI1.Mode=SPI_MODE_MASTER
+SPI1.VirtualType=VM_MASTER
+SPI3.CalculateBaudRate=40.0 MBits/s
+SPI3.Direction=SPI_DIRECTION_2LINES
+SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
+SPI3.Mode=SPI_MODE_MASTER
+SPI3.VirtualType=VM_MASTER
+USART1.IPParameters=VirtualMode-Asynchronous
+USART1.VirtualMode-Asynchronous=VM_ASYNC
 USART2.IPParameters=VirtualMode-Asynchronous
 USART2.IPParameters=VirtualMode-Asynchronous
 USART2.VirtualMode-Asynchronous=VM_ASYNC
 USART2.VirtualMode-Asynchronous=VM_ASYNC
+USART3.IPParameters=VirtualMode-Asynchronous
+USART3.VirtualMode-Asynchronous=VM_ASYNC
+VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
+VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
 VP_SYS_VS_Systick.Mode=SysTick
 VP_SYS_VS_Systick.Mode=SysTick
 VP_SYS_VS_Systick.Signal=SYS_VS_Systick
 VP_SYS_VS_Systick.Signal=SYS_VS_Systick
 board=custom
 board=custom

+ 93 - 2
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/Kconfig

@@ -23,15 +23,106 @@ menu "On-chip Peripheral Drivers"
         default y
         default y
         select RT_USING_SERIAL
         select RT_USING_SERIAL
         if BSP_USING_UART
         if BSP_USING_UART
+             config BSP_USING_UART1
+                bool "Enable UART1(External Debug)"
+                default n
+
             config BSP_USING_UART2
             config BSP_USING_UART2
-                bool "Enable UART2"
+                bool "Enable UART2(CH340)"
                 default y
                 default y
 
 
+             config BSP_USING_UART3
+                bool "Enable UART3(E53)"
+                default n
+
+            config BSP_USING_LPUART1
+                bool "Enable LPUART1(WAN AT UART)"
+                default n
             config BSP_UART1_RX_USING_DMA
             config BSP_UART1_RX_USING_DMA
-                bool "Enable UART2 RX DMA"
+                bool "Enable UART1 RX DMA"
                 depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
                 depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA
                 default n
                 default n
         endif
         endif
+    
+    menuconfig BSP_USING_ADC
+        bool "Enable ADC"
+        default n
+        select RT_USING_ADC
+        if BSP_USING_ADC
+            config BSP_USING_ADC1
+                bool "Enable ADC1(E53 LAN Interface)"
+                default n
+        endif
+
+    menuconfig BSP_USING_ONCHIP_RTC
+        bool "Enable RTC"
+        select RT_USING_RTC
+        default n
+        if BSP_USING_ONCHIP_RTC
+            choice
+                prompt "Select clock source"
+                default BSP_RTC_USING_LSE
+
+                config BSP_RTC_USING_LSE
+                    bool "RTC USING LSE"
+
+                config BSP_RTC_USING_LSI
+                    bool "RTC USING LSI"
+            endchoice
+        endif
+
+    menuconfig BSP_USING_DAC
+        bool "Enable DAC"
+        default n
+        select RT_USING_DAC
+        if BSP_USING_DAC
+            config BSP_USING_DAC1
+                bool "Enable DAC1(E53 LAN Interface)"
+                default n
+        endif
+
+    menuconfig BSP_USING_SPI
+        bool "Enable SPI BUS"
+        default n
+        select RT_USING_SPI
+        if BSP_USING_SPI
+            config BSP_USING_SPI1
+                bool "Enable SPI1 BUS(E53 LAN Interface)"
+                default n
+
+            config BSP_USING_SPI3
+                bool "Enable SPI3 BUS(WAN Interface)"
+                default n
+        endif
+    
+    config BSP_USING_QSPI_FLASH
+        bool "Enable QSPI FLASH (NAND Flash 8MB)"
+        select BSP_USING_QSPI
+        select RT_USING_SFUD
+        select RT_SFUD_USING_SFDP
+        default n 
+
+    config BSP_USING_SDCARD
+        bool "Enable SDCARD (sdio)"
+        select BSP_USING_SDIO
+        default n
+    
+    menuconfig BSP_USING_I2C1
+        bool "Enable I2C1 BUS (software simulation)"
+        default n
+        select RT_USING_I2C
+        select RT_USING_I2C_BITOPS
+        select RT_USING_PIN
+        if BSP_USING_I2C1
+            config BSP_I2C1_SCL_PIN
+                int "i2c1 scl pin number"
+                range 1 216
+                default 22
+            config BSP_I2C1_SDA_PIN
+                int "I2C1 sda pin number"
+                range 1 216
+                default 25
+        endif
 
 
     source "../libraries/HAL_Drivers/drivers/Kconfig"
     source "../libraries/HAL_Drivers/drivers/Kconfig"
 
 

+ 68 - 42
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/board.c

@@ -4,8 +4,8 @@
  * SPDX-License-Identifier: Apache-2.0
  * SPDX-License-Identifier: Apache-2.0
  *
  *
  * Change Logs:
  * Change Logs:
- * Date           Author       Notes
- * 2018-11-06     SummerGift   first version
+ * Date              Author         Notes
+ * 2024-3-19     RuiXuan Zhang   first version
  */
  */
 
 
 #include "board.h"
 #include "board.h"
@@ -14,46 +14,72 @@
   * @brief System Clock Configuration
   * @brief System Clock Configuration
   * @retval None
   * @retval None
   */
   */
-void SystemClock_Config(void)
-{
-  RCC_OscInitTypeDef RCC_OscInitStruct = {0};
-  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
+void SystemClock_Config(void) {
+    RCC_OscInitTypeDef RCC_OscInitStruct = {0};
+    RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
 
 
-  /** Configure the main internal regulator output voltage
-  */
-  if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)
-  {
-    Error_Handler();
-  }
+    /** Configure the main internal regulator output voltage
+    */
+    if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK) {
+        Error_Handler();
+    }
 
 
-  /** Initializes the RCC Oscillators according to the specified parameters
-  * in the RCC_OscInitTypeDef structure.
-  */
-  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
-  RCC_OscInitStruct.HSEState = RCC_HSE_ON;
-  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
-  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
-  RCC_OscInitStruct.PLL.PLLM = 1;
-  RCC_OscInitStruct.PLL.PLLN = 20;
-  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
-  RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
-  RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
-  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
-  {
-    Error_Handler();
-  }
-
-  /** Initializes the CPU, AHB and APB buses clocks
+    /** Configure LSE Drive Capability
+    */
+    HAL_PWR_EnableBkUpAccess();
+    __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
+
+    /** Initializes the RCC Oscillators according to the specified parameters
+    * in the RCC_OscInitTypeDef structure.
+    */
+    RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_LSE;
+    RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+    RCC_OscInitStruct.LSEState = RCC_LSE_ON;
+    RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
+    RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
+    RCC_OscInitStruct.PLL.PLLM = 1;
+    RCC_OscInitStruct.PLL.PLLN = 20;
+    RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;
+    RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;
+    RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;
+    if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
+        Error_Handler();
+    }
+
+    /** Initializes the CPU, AHB and APB buses clocks
+    */
+    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
+                                  | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
+    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
+    RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+    RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
+    RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+
+    if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK) {
+        Error_Handler();
+    }
+}
+
+/**
+  * @brief Peripherals Common Clock Configuration
+  * @retval None
   */
   */
-  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
-                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
-  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
-  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
-  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
-  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
-
-  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)
-  {
-    Error_Handler();
-  }
-}
+void PeriphCommonClock_Config(void) {
+    RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
+
+    /** Initializes the peripherals clock
+    */
+    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_SDMMC1 | RCC_PERIPHCLK_ADC;
+    PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_PLLSAI1;
+    PeriphClkInit.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_PLLSAI1;
+    PeriphClkInit.PLLSAI1.PLLSAI1Source = RCC_PLLSOURCE_HSE;
+    PeriphClkInit.PLLSAI1.PLLSAI1M = 1;
+    PeriphClkInit.PLLSAI1.PLLSAI1N = 8;
+    PeriphClkInit.PLLSAI1.PLLSAI1P = RCC_PLLP_DIV7;
+    PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2;
+    PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2;
+    PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_48M2CLK | RCC_PLLSAI1_ADC1CLK;
+    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) {
+        Error_Handler();
+    }
+}

+ 2 - 0
bsp/stm32/stm32l431-tencentos-tiny-EVB_MX+/board/board.h

@@ -44,6 +44,8 @@ extern int __bss_end;
 
 
 void SystemClock_Config(void);
 void SystemClock_Config(void);
 
 
+void PeriphCommonClock_Config(void);
+
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }
 #endif
 #endif

Some files were not shown because too many files changed in this diff