IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 使用STM32 CubeMX自定义(模板)代码生成 -> 正文阅读

[嵌入式]使用STM32 CubeMX自定义(模板)代码生成

1. STM32 CubeMX custom code generation

搞过STM32的人应该都对STM32 CubeMX不是很陌生。当然,其除了能够配置管脚、时钟树之外,还可以让其根据指定的模板生成相应的代码。

正如其用户手册而言,如下截图。
在这里插入图片描述
如手册所言,我们需要有一个FreeMarker的模板文件,CubeMX根据其解释生成相应的代码文件。
在这里插入图片描述
如上图所言,我们知道在CubeMX的安装路径下,ST已经给我们提供了相应的模板了。

2. 如何使用及生成

在这里插入图片描述
这样,你就能生成自定义的代码了。
这里以ST提供的sample_h.ftl模板为例。
sample_h.ftl

[#ftl]
[#list configs as dt]
[#assign data = dt]
[#assign peripheralParams =dt.peripheralParams]
[#assign peripheralGPIOParams =dt.peripheralGPIOParams]
[#assign peripheralDMAParams =dt.peripheralDMAParams]
[#assign peripheralNVICParams =dt.peripheralNVICParams]


[#assign usedIPs =dt.usedIPs]

/**
  ******************************************************************************
  * File Name          : 
  * Date               : ${date}
  * Description        :
  ******************************************************************************
**/

/*---------------------------- MCU Configuration data -------------------------*/

/* Mcu characteristics */

/* List of used IPs */
- RCC
[#list usedIPs as ip]
- ${ip} 
[/#list]
#t------------------------------------------------------------------------------ 
#t-                         Clock Configuration data 
#t------------------------------------------------------------------------------ 
[#list peripheralParams.get("RCC").entrySet() as paramEntry]
[#if paramEntry.value??]#t#t- ${paramEntry.key} :  ${paramEntry.value}[/#if]    #t [peripheralParams.get("RCC").get("${paramEntry.key}")]
    [/#list]

[#list usedIPs as ip ] [#-- For each used ip, list all configuration data --]
[#if peripheralParams.get(ip).entrySet()?size>0]
#t------------------------------------------------------------------------------ 
#t-                         ${ip} Configuration data  : Driver type = ${peripheralParams.get(ip).get("driver")}
#t------------------------------------------------------------------------------
[#if peripheralGPIOParams.get(ip)?? && peripheralGPIOParams.get(ip).entrySet()?size>0]
#t#t GPIO configuration 
#t#t-------------------
[#list peripheralGPIOParams.get(ip).entrySet() as gpioparamEntry]
#t#t- ${gpioparamEntry.key} :  
[#list gpioparamEntry.value.entrySet() as gpioparam]
#t#t#t - ${gpioparam.key} : ${gpioparam.value}      #t [peripheralGPIOParams.get("${ip}").get("${gpioparamEntry.key}").value.get("${gpioparam.key}")]
[/#list]
    [/#list]
#n
[/#if]
[#if peripheralParams.get(ip)?? ]
#t#t IP paramters configuration
#t#t---------------------------  
  [#list peripheralParams.get(ip).entrySet() as paramEntry]
[#if paramEntry.value??]#t#t- ${paramEntry.key} :  ${paramEntry.value}[/#if]    #t [peripheralParams.get("${ip}").get("${paramEntry.key}")]
    [/#list]
[/#if]
#n
[#if peripheralDMAParams.get(ip)?? && peripheralDMAParams.get(ip).entrySet()?size>0]
#t#t DMA IP paramters configuration
#t#t---------------------------  
[#list peripheralDMAParams.get(ip).entrySet() as dmaParamEntry]
#t#t- ${dmaParamEntry.key} :  
[#list dmaParamEntry.value.entrySet() as dmaParam]
#t#t#t - ${dmaParam.key} : ${dmaParam.value}      #t [peripheralDMAParams.get("${ip}").get("${dmaParamEntry.key}").value.get("${dmaParam.key}")]
[/#list]
    [/#list]
#n
[/#if]
#n
[#if peripheralNVICParams.get(ip)?? && peripheralNVICParams.get(ip).entrySet()?size>0]
#t#t Interrupt IP paramters configuration
#t#t---------------------------  
[#list peripheralNVICParams.get(ip).entrySet() as nvicParamEntry]
#t#t- ${nvicParamEntry.key} :  
[#list nvicParamEntry.value.entrySet() as nvicParam]
#t#t#t - ${nvicParam.key} : ${nvicParam.value}      #t [peripheralNVICParams.get("${ip}").get("${nvicParamEntry.key}").value.get("${nvicParam.key}")]
[/#list]
    [/#list]
#n
[/#if]

[/#if]
[/#list]


[/#list]

生成的sample.h代码如下


/**
  ******************************************************************************
  * File Name          :
  * Date               : 09/10/2022 09:24:15
  * Description        :
  ******************************************************************************
**/

/*---------------------------- MCU Configuration data -------------------------*/

/* Mcu characteristics */

/* List of used IPs */
- RCC
- ADC1
- DMA
- I2C1
- IWDG
- RTC
- SPI1
- SYS
- TIM1
- TIM2
- TIM3
- TIM15
- USART1
- USART2
- USART3
- NVIC
- GPIO
  ------------------------------------------------------------------------------
  -                         Clock Configuration data
  ------------------------------------------------------------------------------
    - TIM1Freq_Value :  16000000       [peripheralParams.get("RCC").get("TIM1Freq_Value")]
    - LSI_VALUE :  32000       [peripheralParams.get("RCC").get("LSI_VALUE")]
    - USART1CLockSelection :  RCC_USART1CLKSOURCE_PCLK1       [peripheralParams.get("RCC").get("USART1CLockSelection")]
    - CECCLockSelection :  RCC_CECCLKSOURCE_HSI_DIV488       [peripheralParams.get("RCC").get("CECCLockSelection")]
    - LPUART1Freq_Value :  16000000       [peripheralParams.get("RCC").get("LPUART1Freq_Value")]
    - MCO2PinFreq_Value :  64000000       [peripheralParams.get("RCC").get("MCO2PinFreq_Value")]
    - RCC_MCODiv :  RCC_MCODIV_1       [peripheralParams.get("RCC").get("RCC_MCODiv")]
    - ADCCLockSelection :  RCC_ADCCLKSOURCE_HSI       [peripheralParams.get("RCC").get("ADCCLockSelection")]
    - TIM15Freq_Value :  16000000       [peripheralParams.get("RCC").get("TIM15Freq_Value")]
    - ExtClockEnable :  false       [peripheralParams.get("RCC").get("ExtClockEnable")]
    - APB1CLKDivider :  RCC_HCLK_DIV1       [peripheralParams.get("RCC").get("APB1CLKDivider")]
    - I2S1Freq_Value :  64000000       [peripheralParams.get("RCC").get("I2S1Freq_Value")]
    - LPTIM2Freq_Value :  16000000       [peripheralParams.get("RCC").get("LPTIM2Freq_Value")]
    - ClockTypePCLK1 :  RCC_CLOCKTYPE_PCLK1       [peripheralParams.get("RCC").get("ClockTypePCLK1")]
    - DATA_CACHE_ENABLE :  1       [peripheralParams.get("RCC").get("DATA_CACHE_ENABLE")]
    - RCC_MCO2Div :  RCC_MCO2DIV_1       [peripheralParams.get("RCC").get("RCC_MCO2Div")]
    - HSISYSCLKDivider :  RCC_HSI_DIV1       [peripheralParams.get("RCC").get("HSISYSCLKDivider")]
    - FCLKCortexFreq_Value :  16000000       [peripheralParams.get("RCC").get("FCLKCortexFreq_Value")]
    - AHBFreq_Value :  16000000       [peripheralParams.get("RCC").get("AHBFreq_Value")]
    - RCC_MCO2Source :  RCC_MCO2SOURCE_SYSCLK       [peripheralParams.get("RCC").get("RCC_MCO2Source")]
    - CodegenConfigPeriph :  true       [peripheralParams.get("RCC").get("CodegenConfigPeriph")]
    - ClockTypeSysClk :  RCC_CLOCKTYPE_SYSCLK       [peripheralParams.get("RCC").get("ClockTypeSysClk")]
    - USART2CLockSelection :  RCC_USART2CLKSOURCE_PCLK1       [peripheralParams.get("RCC").get("USART2CLockSelection")]
    - SYSCLKFreq_VALUE :  64000000       [peripheralParams.get("RCC").get("SYSCLKFreq_VALUE")]
    - USART1Freq_Value :  16000000       [peripheralParams.get("RCC").get("USART1Freq_Value")]
    - HSICalibrationValue :  64       [peripheralParams.get("RCC").get("HSICalibrationValue")]
    - I2C2CLockSelection :  RCC_I2C2CLKSOURCE_PCLK1       [peripheralParams.get("RCC").get("I2C2CLockSelection")]
    - PLLQ :  RCC_PLLQ_DIV2       [peripheralParams.get("RCC").get("PLLQ")]
    - PLLP :  RCC_PLLP_DIV2       [peripheralParams.get("RCC").get("PLLP")]
    - SYSCLKSource :  RCC_SYSCLKSOURCE_PLLCLK       [peripheralParams.get("RCC").get("SYSCLKSource")]
    - LPTIM1CLockSelection :  RCC_LPTIM1CLKSOURCE_PCLK1       [peripheralParams.get("RCC").get("LPTIM1CLockSelection")]
    - LPTIM1Freq_Value :  16000000       [peripheralParams.get("RCC").get("LPTIM1Freq_Value")]
    - PLLR :  RCC_PLLR_DIV2       [peripheralParams.get("RCC").get("PLLR")]
    - LSE_VALUE :  32768       [peripheralParams.get("RCC").get("LSE_VALUE")]
    - HSE_VALUE :  8000000       [peripheralParams.get("RCC").get("HSE_VALUE")]
    - ClockTypeARG :  RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1       [peripheralParams.get("RCC").get("ClockTypeARG")]
    - APB1TimCLKDivider :  1       [peripheralParams.get("RCC").get("APB1TimCLKDivider")]
    - Cortex_Div :  SYSTICK_CLKSOURCE_HCLK       [peripheralParams.get("RCC").get("Cortex_Div")]
    - HSI_VALUE :  16000000       [peripheralParams.get("RCC").get("HSI_VALUE")]
    - AHBCLKDividerARG :  RCC_SYSCLK_DIV4       [peripheralParams.get("RCC").get("AHBCLKDividerARG")]
    - EnableCSSLSE :  false       [peripheralParams.get("RCC").get("EnableCSSLSE")]
    - ADCFreq_Value :  16000000       [peripheralParams.get("RCC").get("ADCFreq_Value")]
    - I2S1CLockSelection :  RCC_I2S1CLKSOURCE_SYSCLK       [peripheralParams.get("RCC").get("I2S1CLockSelection")]
    - driver :  HAL       [peripheralParams.get("RCC").get("driver")]
    - APB1CLKDividerARG :  RCC_HCLK_DIV1       [peripheralParams.get("RCC").get("APB1CLKDividerARG")]
    - PWR_Regulator_Voltage_Scale :  PWR_REGULATOR_VOLTAGE_SCALE1       [peripheralParams.get("RCC").get("PWR_Regulator_Voltage_Scale")]
    - EXTERNAL_I2S2_CLOCK_VALUE :  48000       [peripheralParams.get("RCC").get("EXTERNAL_I2S2_CLOCK_VALUE")]
    - OscillatorType :  RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI       [peripheralParams.get("RCC").get("OscillatorType")]
    - APBTimFreq_Value :  16000000       [peripheralParams.get("RCC").get("APBTimFreq_Value")]
    - RTCFreq_Value :  32000       [peripheralParams.get("RCC").get("RTCFreq_Value")]
    - VDD_VALUE :  3       [peripheralParams.get("RCC").get("VDD_VALUE")]
    - AHBCLKDivider :  RCC_SYSCLK_DIV4       [peripheralParams.get("RCC").get("AHBCLKDivider")]
    - LPTIM2CLockSelection :  RCC_LPTIM2CLKSOURCE_PCLK1       [peripheralParams.get("RCC").get("LPTIM2CLockSelection")]
    - Instance :  RCC       [peripheralParams.get("RCC").get("Instance")]
    - SYSCLKFreq_VALUE1 :  64       [peripheralParams.get("RCC").get("SYSCLKFreq_VALUE1")]
    - SYSCLKFreq_VALUE2 :  64       [peripheralParams.get("RCC").get("SYSCLKFreq_VALUE2")]
    - PWRFreq_Value :  64000000       [peripheralParams.get("RCC").get("PWRFreq_Value")]
    - USART3CLockSelection :  RCC_USART3CLKSOURCE_PCLK1       [peripheralParams.get("RCC").get("USART3CLockSelection")]
    - MCO1PinFreq_Value :  64000000       [peripheralParams.get("RCC").get("MCO1PinFreq_Value")]
    - I2C1CLockSelection :  RCC_I2C1CLKSOURCE_PCLK1       [peripheralParams.get("RCC").get("I2C1CLockSelection")]
    - USART2Freq_Value :  16000000       [peripheralParams.get("RCC").get("USART2Freq_Value")]
    - HCLKFreq_Value :  16000000       [peripheralParams.get("RCC").get("HCLKFreq_Value")]
    - HSISYSCLKDividerARG :  RCC_HSI_DIV1       [peripheralParams.get("RCC").get("HSISYSCLKDividerARG")]
    - SYSCLKSourceARG :  RCC_SYSCLKSOURCE_PLLCLK       [peripheralParams.get("RCC").get("SYSCLKSourceARG")]
    - HSE_Timout :  100       [peripheralParams.get("RCC").get("HSE_Timout")]
    - APBFreq_Value :  16000000       [peripheralParams.get("RCC").get("APBFreq_Value")]
    - USBFreq_Value :  48000000       [peripheralParams.get("RCC").get("USBFreq_Value")]
    - EnableExtClockForI2S :  false       [peripheralParams.get("RCC").get("EnableExtClockForI2S")]
    - WatchDogFreq_Value :  32000       [peripheralParams.get("RCC").get("WatchDogFreq_Value")]
    - PLLM :  RCC_PLLM_DIV1       [peripheralParams.get("RCC").get("PLLM")]
    - LPUART1CLockSelection :  RCC_LPUART1CLKSOURCE_PCLK1       [peripheralParams.get("RCC").get("LPUART1CLockSelection")]
    - CECFreq_Value :  32786       [peripheralParams.get("RCC").get("CECFreq_Value")]
    - PREFETCH_ENABLE :  0       [peripheralParams.get("RCC").get("PREFETCH_ENABLE")]
    - PLLN :  8       [peripheralParams.get("RCC").get("PLLN")]
    - FLatency :  FLASH_LATENCY_0       [peripheralParams.get("RCC").get("FLatency")]
    - EXTERNAL_CLOCK_VALUE :  48000       [peripheralParams.get("RCC").get("EXTERNAL_CLOCK_VALUE")]
    - CortexFreq_Value :  16000000       [peripheralParams.get("RCC").get("CortexFreq_Value")]
    - I2C1Freq_Value :  16000000       [peripheralParams.get("RCC").get("I2C1Freq_Value")]
    - RTCClockSelection :  RCC_RTCCLKSOURCE_LSI       [peripheralParams.get("RCC").get("RTCClockSelection")]
    - USART3Freq_Value :  16000000       [peripheralParams.get("RCC").get("USART3Freq_Value")]
    - LSE_Timout :  5000       [peripheralParams.get("RCC").get("LSE_Timout")]
    - ClockTypeHCLK :  RCC_CLOCKTYPE_HCLK       [peripheralParams.get("RCC").get("ClockTypeHCLK")]
    - RCC_CEC_Clock_Source_FROM_HSI16 :  488       [peripheralParams.get("RCC").get("RCC_CEC_Clock_Source_FROM_HSI16")]
    - INSTRUCTION_CACHE_ENABLE :  1       [peripheralParams.get("RCC").get("INSTRUCTION_CACHE_ENABLE")]
    - RCC_RTC_Clock_Source_FROM_HSE :  32       [peripheralParams.get("RCC").get("RCC_RTC_Clock_Source_FROM_HSE")]
    - RCC_MCO1Source :  RCC_MCO1SOURCE_SYSCLK       [peripheralParams.get("RCC").get("RCC_MCO1Source")]
    - EnbaleCSS :  false       [peripheralParams.get("RCC").get("EnbaleCSS")]
    - ClockType :  RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1       [peripheralParams.get("RCC").get("ClockType")]

  ------------------------------------------------------------------------------
  -                         ADC1 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - ADC1_IN5 :
       - Pin : PA5         [peripheralGPIOParams.get("ADC1").get("ADC1_IN5").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("ADC1").get("ADC1_IN5").value.get("GPIOx")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("ADC1").get("ADC1_IN5").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("ADC1").get("ADC1_IN5").value.get("Port")]
       - GPIO_Label : ADC_V_SUPCAP         [peripheralGPIOParams.get("ADC1").get("ADC1_IN5").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_5         [peripheralGPIOParams.get("ADC1").get("ADC1_IN5").value.get("GPIO_Pin")]
       - GPIO_Mode : GPIO_MODE_ANALOG         [peripheralGPIOParams.get("ADC1").get("ADC1_IN5").value.get("GPIO_Mode")]
    - ADC1_IN0 :
       - Pin : PA0         [peripheralGPIOParams.get("ADC1").get("ADC1_IN0").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("ADC1").get("ADC1_IN0").value.get("GPIOx")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("ADC1").get("ADC1_IN0").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("ADC1").get("ADC1_IN0").value.get("Port")]
       - GPIO_Label : ADC_V_VARIANT         [peripheralGPIOParams.get("ADC1").get("ADC1_IN0").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_0         [peripheralGPIOParams.get("ADC1").get("ADC1_IN0").value.get("GPIO_Pin")]
       - GPIO_Mode : GPIO_MODE_ANALOG         [peripheralGPIOParams.get("ADC1").get("ADC1_IN0").value.get("GPIO_Mode")]

     IP paramters configuration
    ---------------------------
    - ChannelVREF :  ADC_CHANNEL_VREFINT       [peripheralParams.get("ADC1").get("ChannelVREF")]
    - OversamplingMode :  DISABLE       [peripheralParams.get("ADC1").get("OversamplingMode")]
    - NbrOfConversionFlag :  0       [peripheralParams.get("ADC1").get("NbrOfConversionFlag")]
    - DataAlign :  ADC_DATAALIGN_RIGHT       [peripheralParams.get("ADC1").get("DataAlign")]
    - Instance :  ADC1       [peripheralParams.get("ADC1").get("Instance")]
    - LowPowerAutoPowerOff :  DISABLE       [peripheralParams.get("ADC1").get("LowPowerAutoPowerOff")]
    - Channel_IN0 :  ADC_CHANNEL_0       [peripheralParams.get("ADC1").get("Channel_IN0")]
    - Channel_IN-Vrefint :  ADC_CHANNEL_VREFINT       [peripheralParams.get("ADC1").get("Channel_IN-Vrefint")]
    - Channel_IN5 :  ADC_CHANNEL_5       [peripheralParams.get("ADC1").get("Channel_IN5")]
    - ExternalTrigConvEdge :  ADC_EXTERNALTRIGCONVEDGE_RISING       [peripheralParams.get("ADC1").get("ExternalTrigConvEdge")]
    - EnableAnalogWatchDog1 :  false       [peripheralParams.get("ADC1").get("EnableAnalogWatchDog1")]
    - ScanConvMode :  ADC_SCAN_SEQ_FIXED       [peripheralParams.get("ADC1").get("ScanConvMode")]
    - Sequencer :  NOT_FULLY_CONFIGURABLE       [peripheralParams.get("ADC1").get("Sequencer")]
    - CommonClock :  ADC_CLOCK_SYNC_PCLK_DIV2       [peripheralParams.get("ADC1").get("CommonClock")]
    - EOCSelection :  ADC_EOC_SINGLE_CONV       [peripheralParams.get("ADC1").get("EOCSelection")]
    - ClockPrescaler :  ADC_CLOCK_SYNC_PCLK_DIV2       [peripheralParams.get("ADC1").get("ClockPrescaler")]
    - SamplingTimeCommon1 :  ADC_SAMPLETIME_7CYCLES_5       [peripheralParams.get("ADC1").get("SamplingTimeCommon1")]
    - SamplingTimeCommon2 :  __NULL       [peripheralParams.get("ADC1").get("SamplingTimeCommon2")]
    - DiscontinuousConvMode :  DISABLE       [peripheralParams.get("ADC1").get("DiscontinuousConvMode")]
    - ExternalTrigConv :  ADC_EXTERNALTRIG_T1_TRGO2       [peripheralParams.get("ADC1").get("ExternalTrigConv")]
    - NbrOfConversion :  1       [peripheralParams.get("ADC1").get("NbrOfConversion")]
    - TriggerFrequencyMode :  ADC_TRIGGER_FREQ_HIGH       [peripheralParams.get("ADC1").get("TriggerFrequencyMode")]
    - ChannelTS :  ADC_CHANNEL_TEMPSENSOR       [peripheralParams.get("ADC1").get("ChannelTS")]
    - ContinuousConvMode :  DISABLE       [peripheralParams.get("ADC1").get("ContinuousConvMode")]
    - LowPowerAutoWait :  DISABLE       [peripheralParams.get("ADC1").get("LowPowerAutoWait")]
    - driver :  HAL       [peripheralParams.get("ADC1").get("driver")]
    - Overrun :  ADC_OVR_DATA_PRESERVED       [peripheralParams.get("ADC1").get("Overrun")]
    - DMAContinuousRequests :  ENABLE       [peripheralParams.get("ADC1").get("DMAContinuousRequests")]
    - Channel_IN-TempSens :  ADC_CHANNEL_TEMPSENSOR       [peripheralParams.get("ADC1").get("Channel_IN-TempSens")]
    - Resolution :  ADC_RESOLUTION_12B       [peripheralParams.get("ADC1").get("Resolution")]

     DMA IP paramters configuration
    ---------------------------
    - ADC1 :
       - Instance : DMA1_Channel1         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("Instance")]
       - Priority : DMA_PRIORITY_LOW         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("Priority")]
       - MemDataAlignment : DMA_MDATAALIGN_WORD         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("MemDataAlignment")]
       - Mode : DMA_CIRCULAR         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("Mode")]
       - SyncRequestNumber : 1         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("SyncRequestNumber")]
       - Request : DMA_REQUEST_ADC1         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("Request")]
       - SyncPolarity : HAL_DMAMUX_SYNC_NO_EVENT         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("SyncPolarity")]
       - Direction : DMA_PERIPH_TO_MEMORY         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("Direction")]
       - SignalID : NONE         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("SignalID")]
       - MemInc : DMA_MINC_ENABLE         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("MemInc")]
       - IpInstance :          [peripheralDMAParams.get("ADC1").get("ADC1").value.get("IpInstance")]
       - RequestNumber : 1         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("RequestNumber")]
       - EventEnable : DISABLE         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("EventEnable")]
       - SyncEnable : DISABLE         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("SyncEnable")]
       - DMA_Handle :          [peripheralDMAParams.get("ADC1").get("ADC1").value.get("DMA_Handle")]
       - PeriphDataAlignment : DMA_PDATAALIGN_WORD         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("PeriphDataAlignment")]
       - Polarity : HAL_DMAMUX_REQ_GEN_RISING         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("Polarity")]
       - SyncSignalID : NONE         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("SyncSignalID")]
       - PeriphInc : DMA_PINC_DISABLE         [peripheralDMAParams.get("ADC1").get("ADC1").value.get("PeriphInc")]

  ------------------------------------------------------------------------------
  -                         DMA Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     IP paramters configuration
    ---------------------------
    - driver :  HAL       [peripheralParams.get("DMA").get("driver")]
    - Instance :  DMA1_Channel1       [peripheralParams.get("DMA").get("Instance")]

     Interrupt IP paramters configuration
    ---------------------------
    - DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX1_OVR_IRQn :
       - interruptPremptionPriority : 0         [peripheralNVICParams.get("DMA").get("DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX1_OVR_IRQn").value.get("interruptPremptionPriority")]
       - Subriority : 0         [peripheralNVICParams.get("DMA").get("DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX1_OVR_IRQn").value.get("Subriority")]
    - DMA1_Channel1_IRQn :
       - interruptPremptionPriority : 3         [peripheralNVICParams.get("DMA").get("DMA1_Channel1_IRQn").value.get("interruptPremptionPriority")]
       - Subriority : 0         [peripheralNVICParams.get("DMA").get("DMA1_Channel1_IRQn").value.get("Subriority")]

  ------------------------------------------------------------------------------
  -                         I2C1 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - I2C1_SCL :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("I2C1").get("I2C1_SCL").value.get("GPIO_Speed")]
       - Pin : PB8         [peripheralGPIOParams.get("I2C1").get("I2C1_SCL").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("I2C1").get("I2C1_SCL").value.get("GPIOx")]
       - Port : PB         [peripheralGPIOParams.get("I2C1").get("I2C1_SCL").value.get("Port")]
       - GPIO_Label : I2C_MULTI_MASTER__SCL         [peripheralGPIOParams.get("I2C1").get("I2C1_SCL").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_8         [peripheralGPIOParams.get("I2C1").get("I2C1_SCL").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF6_I2C1         [peripheralGPIOParams.get("I2C1").get("I2C1_SCL").value.get("GPIO_AF")]
       - GPIO_Pu : GPIO_PULLUP         [peripheralGPIOParams.get("I2C1").get("I2C1_SCL").value.get("GPIO_Pu")]
       - GPIO_Mode : GPIO_MODE_AF_OD         [peripheralGPIOParams.get("I2C1").get("I2C1_SCL").value.get("GPIO_Mode")]
    - I2C1_SDA :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("I2C1").get("I2C1_SDA").value.get("GPIO_Speed")]
       - Pin : PB9         [peripheralGPIOParams.get("I2C1").get("I2C1_SDA").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("I2C1").get("I2C1_SDA").value.get("GPIOx")]
       - Port : PB         [peripheralGPIOParams.get("I2C1").get("I2C1_SDA").value.get("Port")]
       - GPIO_Label : I2C_MULTI_MASTER_SDA         [peripheralGPIOParams.get("I2C1").get("I2C1_SDA").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_9         [peripheralGPIOParams.get("I2C1").get("I2C1_SDA").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF6_I2C1         [peripheralGPIOParams.get("I2C1").get("I2C1_SDA").value.get("GPIO_AF")]
       - GPIO_Pu : GPIO_PULLUP         [peripheralGPIOParams.get("I2C1").get("I2C1_SDA").value.get("GPIO_Pu")]
       - GPIO_Mode : GPIO_MODE_AF_OD         [peripheralGPIOParams.get("I2C1").get("I2C1_SDA").value.get("GPIO_Mode")]

     IP paramters configuration
    ---------------------------
    - Speed :  100       [peripheralParams.get("I2C1").get("Speed")]
    - I2C_Speed_Mode :  I2C_Standard       [peripheralParams.get("I2C1").get("I2C_Speed_Mode")]
    - CustomTiming :  Disabled       [peripheralParams.get("I2C1").get("CustomTiming")]
    - I2C_Rise_Time :  0       [peripheralParams.get("I2C1").get("I2C_Rise_Time")]
    - OwnAddress :  0       [peripheralParams.get("I2C1").get("OwnAddress")]
    - Instance :  I2C$Index       [peripheralParams.get("I2C1").get("Instance")]
    - Analog_Filter :  I2C_ANALOGFILTER_ENABLE       [peripheralParams.get("I2C1").get("Analog_Filter")]
    - I2C_Fall_Time :  0       [peripheralParams.get("I2C1").get("I2C_Fall_Time")]
    - DualAddressMode :  I2C_DUALADDRESS_DISABLE       [peripheralParams.get("I2C1").get("DualAddressMode")]
    - OwnAddress2 :  0       [peripheralParams.get("I2C1").get("OwnAddress2")]
    - OwnAddress2Masks :  I2C_OA2_NOMASK       [peripheralParams.get("I2C1").get("OwnAddress2Masks")]
    - I2C_Coeff_DF :  0       [peripheralParams.get("I2C1").get("I2C_Coeff_DF")]
    - driver :  HAL       [peripheralParams.get("I2C1").get("driver")]
    - NoStretchMode :  I2C_NOSTRETCH_DISABLE       [peripheralParams.get("I2C1").get("NoStretchMode")]
    - Timing :  0x00303D5B       [peripheralParams.get("I2C1").get("Timing")]
    - GeneralCallMode :  I2C_GENERALCALL_DISABLE       [peripheralParams.get("I2C1").get("GeneralCallMode")]
    - AddressingMode :  I2C_ADDRESSINGMODE_7BIT       [peripheralParams.get("I2C1").get("AddressingMode")]

  ------------------------------------------------------------------------------
  -                         IWDG Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     IP paramters configuration
    ---------------------------
    - Window :  4095       [peripheralParams.get("IWDG").get("Window")]
    - driver :  HAL       [peripheralParams.get("IWDG").get("driver")]
    - Instance :  IWDG$Index       [peripheralParams.get("IWDG").get("Instance")]
    - Reload :  4095       [peripheralParams.get("IWDG").get("Reload")]
    - Prescaler :  IWDG_PRESCALER_256       [peripheralParams.get("IWDG").get("Prescaler")]

  ------------------------------------------------------------------------------
  -                         RTC Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - RTC_TS :
       - Pin : PC13         [peripheralGPIOParams.get("RTC").get("RTC_TS").value.get("Pin")]
       - Port : PC         [peripheralGPIOParams.get("RTC").get("RTC_TS").value.get("Port")]
       - GPIO_Label :          [peripheralGPIOParams.get("RTC").get("RTC_TS").value.get("GPIO_Label")]

     IP paramters configuration
    ---------------------------
    - AlarmDateWeekDay_Alarm A :  1       [peripheralParams.get("RTC").get("AlarmDateWeekDay_Alarm A")]
    - DayLightSaving :  RTC_DAYLIGHTSAVING_NONE       [peripheralParams.get("RTC").get("DayLightSaving")]
    - AlarmMaskHours_Alarm A :         [peripheralParams.get("RTC").get("AlarmMaskHours_Alarm A")]
    - AlarmDateWeekDay_B_Alarm B :  1       [peripheralParams.get("RTC").get("AlarmDateWeekDay_B_Alarm B")]
    - StoreOperation :  RTC_STOREOPERATION_RESET       [peripheralParams.get("RTC").get("StoreOperation")]
    - Minutes :  0       [peripheralParams.get("RTC").get("Minutes")]
    - Month :  RTC_MONTH_JANUARY       [peripheralParams.get("RTC").get("Month")]
    - AlarmDateWeekDaySel_B_Alarm B :  RTC_ALARMDATEWEEKDAYSEL_DATE       [peripheralParams.get("RTC").get("AlarmDateWeekDaySel_B_Alarm B")]
    - Minutes_B_Alarm B :  0       [peripheralParams.get("RTC").get("Minutes_B_Alarm B")]
    - HourFormat :  RTC_HOURFORMAT_24       [peripheralParams.get("RTC").get("HourFormat")]
    - SubSeconds_B_Alarm B :  0       [peripheralParams.get("RTC").get("SubSeconds_B_Alarm B")]
    - Alarm_Alarm A :  RTC_ALARM_A       [peripheralParams.get("RTC").get("Alarm_Alarm A")]
    - AlarmMask_B_Alarm B :  RTC_ALARMMASK_NONE       [peripheralParams.get("RTC").get("AlarmMask_B_Alarm B")]
    - Hours_B_Alarm B :  0       [peripheralParams.get("RTC").get("Hours_B_Alarm B")]
    - SynchPrediv :  255       [peripheralParams.get("RTC").get("SynchPrediv")]
    - Alarm_B_Alarm B :  RTC_ALARM_B       [peripheralParams.get("RTC").get("Alarm_B_Alarm B")]
    - OutPutRemap :  RTC_OUTPUT_REMAP_NONE       [peripheralParams.get("RTC").get("OutPutRemap")]
    - WakeUpClock_WakeUp :  RTC_WAKEUPCLOCK_RTCCLK_DIV16       [peripheralParams.get("RTC").get("WakeUpClock_WakeUp")]
    - Minutes_A_Alarm A :  0       [peripheralParams.get("RTC").get("Minutes_A_Alarm A")]
    - SubSeconds_A_Alarm A :  0       [peripheralParams.get("RTC").get("SubSeconds_A_Alarm A")]
    - WeekDay :  RTC_WEEKDAY_MONDAY       [peripheralParams.get("RTC").get("WeekDay")]
    - AsynchPrediv :  127       [peripheralParams.get("RTC").get("AsynchPrediv")]
    - AlarmMaskDateWeekDay_B_Alarm B :         [peripheralParams.get("RTC").get("AlarmMaskDateWeekDay_B_Alarm B")]
    - AlarmSubSecondMask_B_Alarm B :  RTC_ALARMSUBSECONDMASK_ALL       [peripheralParams.get("RTC").get("AlarmSubSecondMask_B_Alarm B")]
    - TimeStampPin :  RTC_TIMESTAMPPIN_DEFAULT       [peripheralParams.get("RTC").get("TimeStampPin")]
    - driver :  HAL       [peripheralParams.get("RTC").get("driver")]
    - OutPutPolarity :  RTC_OUTPUT_POLARITY_HIGH       [peripheralParams.get("RTC").get("OutPutPolarity")]
    - Seconds_A_Alarm A :  0       [peripheralParams.get("RTC").get("Seconds_A_Alarm A")]
    - AlarmDateWeekDaySel_Alarm A :  RTC_ALARMDATEWEEKDAYSEL_DATE       [peripheralParams.get("RTC").get("AlarmDateWeekDaySel_Alarm A")]
    - OutPutPullUp :  RTC_OUTPUT_PULLUP_NONE       [peripheralParams.get("RTC").get("OutPutPullUp")]
    - Hours :  0       [peripheralParams.get("RTC").get("Hours")]
    - AlarmMaskDateWeekDay_Alarm A :         [peripheralParams.get("RTC").get("AlarmMaskDateWeekDay_Alarm A")]
    - AlarmMaskHours_B_Alarm B :         [peripheralParams.get("RTC").get("AlarmMaskHours_B_Alarm B")]
    - Instance :  RTC       [peripheralParams.get("RTC").get("Instance")]
    - OutPutType :  RTC_OUTPUT_TYPE_OPENDRAIN       [peripheralParams.get("RTC").get("OutPutType")]
    - TimeStampEdge :  RTC_TIMESTAMPEDGE_RISING       [peripheralParams.get("RTC").get("TimeStampEdge")]
    - WakeUpCounter_WakeUp :  0       [peripheralParams.get("RTC").get("WakeUpCounter_WakeUp")]
    - AlarmMaskMinutes_Alarm A :         [peripheralParams.get("RTC").get("AlarmMaskMinutes_Alarm A")]
    - AlarmMaskSeconds_B_Alarm B :         [peripheralParams.get("RTC").get("AlarmMaskSeconds_B_Alarm B")]
    - SubSeconds :  0       [peripheralParams.get("RTC").get("SubSeconds")]
    - Format :  RTC_FORMAT_BCD       [peripheralParams.get("RTC").get("Format")]
    - Hours_A_Alarm A :  0       [peripheralParams.get("RTC").get("Hours_A_Alarm A")]
    - AlarmSubSecondMask_Alarm A :  RTC_ALARMSUBSECONDMASK_ALL       [peripheralParams.get("RTC").get("AlarmSubSecondMask_Alarm A")]
    - AlarmDateWeekDayARG_Alarm A :  0x1       [peripheralParams.get("RTC").get("AlarmDateWeekDayARG_Alarm A")]
    - AlarmMaskSeconds_Alarm A :         [peripheralParams.get("RTC").get("AlarmMaskSeconds_Alarm A")]
    - AlarmDateWeekDayARG_B_Alarm B :  0x1       [peripheralParams.get("RTC").get("AlarmDateWeekDayARG_B_Alarm B")]
    - Seconds_B_Alarm B :  0       [peripheralParams.get("RTC").get("Seconds_B_Alarm B")]
    - Date :  1       [peripheralParams.get("RTC").get("Date")]
    - AlarmMaskMinutes_B_Alarm B :         [peripheralParams.get("RTC").get("AlarmMaskMinutes_B_Alarm B")]
    - OutPut :  RTC_OUTPUT_DISABLE       [peripheralParams.get("RTC").get("OutPut")]
    - Year :  0       [peripheralParams.get("RTC").get("Year")]
    - AlarmMask_Alarm A :  RTC_ALARMMASK_NONE       [peripheralParams.get("RTC").get("AlarmMask_Alarm A")]
    - Seconds :  0       [peripheralParams.get("RTC").get("Seconds")]

     Interrupt IP paramters configuration
    ---------------------------
    - RTC_TAMP_IRQn :
       - interruptPremptionPriority : 0         [peripheralNVICParams.get("RTC").get("RTC_TAMP_IRQn").value.get("interruptPremptionPriority")]
       - Subriority : 0         [peripheralNVICParams.get("RTC").get("RTC_TAMP_IRQn").value.get("Subriority")]

  ------------------------------------------------------------------------------
  -                         SPI1 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - SPI1_NSS :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("GPIO_Speed")]
       - Pin : PA15         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("Port")]
       - GPIO_Label : SPI_EXT_FLASH_NSS         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_15         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF0_SPI1         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("GPIO_AF")]
       - GPIO_Mode : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("SPI1").get("SPI1_NSS").value.get("GPIO_Mode")]
    - SPI1_MISO :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("GPIO_Speed")]
       - Pin : PB4         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("Port")]
       - GPIO_Label : SPI_EXT_FLASH_MISO         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_4         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF0_SPI1         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("GPIO_AF")]
       - GPIO_Mode : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("SPI1").get("SPI1_MISO").value.get("GPIO_Mode")]
    - SPI1_MOSI :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("GPIO_Speed")]
       - Pin : PB5         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("Port")]
       - GPIO_Label : SPI_EXT_FLASH_MOSI         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_5         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF0_SPI1         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("GPIO_AF")]
       - GPIO_Mode : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("SPI1").get("SPI1_MOSI").value.get("GPIO_Mode")]
    - SPI1_SCK :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("GPIO_Speed")]
       - Pin : PB3         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("Port")]
       - GPIO_Label : SPI_EXT_FLASH_SCK         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_3         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF0_SPI1         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("GPIO_AF")]
       - GPIO_Mode : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("SPI1").get("SPI1_SCK").value.get("GPIO_Mode")]

     IP paramters configuration
    ---------------------------
    - CRCCalculation :  SPI_CRCCALCULATION_DISABLE       [peripheralParams.get("SPI1").get("CRCCalculation")]
    - CLKPhase :  SPI_PHASE_1EDGE       [peripheralParams.get("SPI1").get("CLKPhase")]
    - BaudRatePrescaler :  SPI_BAUDRATEPRESCALER_2       [peripheralParams.get("SPI1").get("BaudRatePrescaler")]
    - CRCLength :  SPI_CRC_LENGTH_DATASIZE       [peripheralParams.get("SPI1").get("CRCLength")]
    - VirtualNSS :  VM_NSSHARD       [peripheralParams.get("SPI1").get("VirtualNSS")]
    - Instance :  SPI$Index       [peripheralParams.get("SPI1").get("Instance")]
    - Mode :  SPI_MODE_MASTER       [peripheralParams.get("SPI1").get("Mode")]
    - CRCPolynomial :  7       [peripheralParams.get("SPI1").get("CRCPolynomial")]
    - NSSPMode :  SPI_NSS_PULSE_DISABLE       [peripheralParams.get("SPI1").get("NSSPMode")]
    - VirtualType :  VM_MASTER       [peripheralParams.get("SPI1").get("VirtualType")]
    - CLKPolarity :  SPI_POLARITY_LOW       [peripheralParams.get("SPI1").get("CLKPolarity")]
    - Direction :  SPI_DIRECTION_2LINES       [peripheralParams.get("SPI1").get("Direction")]
    - FirstBit :  SPI_FIRSTBIT_MSB       [peripheralParams.get("SPI1").get("FirstBit")]
    - NSS :  SPI_NSS_HARD_OUTPUT       [peripheralParams.get("SPI1").get("NSS")]
    - driver :  HAL       [peripheralParams.get("SPI1").get("driver")]
    - DataSize :  SPI_DATASIZE_8BIT       [peripheralParams.get("SPI1").get("DataSize")]
    - TIMode :  SPI_TIMODE_DISABLE       [peripheralParams.get("SPI1").get("TIMode")]
    - CalculateBaudRate :  8.0 MBits/s       [peripheralParams.get("SPI1").get("CalculateBaudRate")]

     DMA IP paramters configuration
    ---------------------------
    - SPI1_RX :
       - Instance : DMA1_Channel4         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("Instance")]
       - Priority : DMA_PRIORITY_LOW         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("Priority")]
       - MemDataAlignment : DMA_MDATAALIGN_BYTE         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("MemDataAlignment")]
       - Mode : DMA_NORMAL         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("Mode")]
       - SyncRequestNumber : 1         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("SyncRequestNumber")]
       - Request : DMA_REQUEST_SPI1_RX         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("Request")]
       - SyncPolarity : HAL_DMAMUX_SYNC_NO_EVENT         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("SyncPolarity")]
       - Direction : DMA_PERIPH_TO_MEMORY         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("Direction")]
       - SignalID : NONE         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("SignalID")]
       - MemInc : DMA_MINC_ENABLE         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("MemInc")]
       - IpInstance :          [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("IpInstance")]
       - RequestNumber : 1         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("RequestNumber")]
       - EventEnable : DISABLE         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("EventEnable")]
       - SyncEnable : DISABLE         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("SyncEnable")]
       - DMA_Handle :          [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("DMA_Handle")]
       - PeriphDataAlignment : DMA_PDATAALIGN_BYTE         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("PeriphDataAlignment")]
       - Polarity : HAL_DMAMUX_REQ_GEN_RISING         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("Polarity")]
       - SyncSignalID : NONE         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("SyncSignalID")]
       - PeriphInc : DMA_PINC_DISABLE         [peripheralDMAParams.get("SPI1").get("SPI1_RX").value.get("PeriphInc")]
    - SPI1_TX :
       - Instance : DMA1_Channel5         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("Instance")]
       - Priority : DMA_PRIORITY_LOW         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("Priority")]
       - MemDataAlignment : DMA_MDATAALIGN_BYTE         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("MemDataAlignment")]
       - Mode : DMA_NORMAL         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("Mode")]
       - SyncRequestNumber : 1         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("SyncRequestNumber")]
       - Request : DMA_REQUEST_SPI1_TX         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("Request")]
       - SyncPolarity : HAL_DMAMUX_SYNC_NO_EVENT         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("SyncPolarity")]
       - Direction : DMA_MEMORY_TO_PERIPH         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("Direction")]
       - SignalID : NONE         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("SignalID")]
       - MemInc : DMA_MINC_ENABLE         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("MemInc")]
       - IpInstance :          [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("IpInstance")]
       - RequestNumber : 1         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("RequestNumber")]
       - EventEnable : DISABLE         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("EventEnable")]
       - SyncEnable : DISABLE         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("SyncEnable")]
       - DMA_Handle :          [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("DMA_Handle")]
       - PeriphDataAlignment : DMA_PDATAALIGN_BYTE         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("PeriphDataAlignment")]
       - Polarity : HAL_DMAMUX_REQ_GEN_RISING         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("Polarity")]
       - SyncSignalID : NONE         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("SyncSignalID")]
       - PeriphInc : DMA_PINC_DISABLE         [peripheralDMAParams.get("SPI1").get("SPI1_TX").value.get("PeriphInc")]

  ------------------------------------------------------------------------------
  -                         SYS Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - SYS_SWDIO :
       - Pin : PA13         [peripheralGPIOParams.get("SYS").get("SYS_SWDIO").value.get("Pin")]
       - Port : PA         [peripheralGPIOParams.get("SYS").get("SYS_SWDIO").value.get("Port")]
       - GPIO_Label :          [peripheralGPIOParams.get("SYS").get("SYS_SWDIO").value.get("GPIO_Label")]
    - SYS_SWCLK :
       - Pin : PA14-BOOT0         [peripheralGPIOParams.get("SYS").get("SYS_SWCLK").value.get("Pin")]
       - Port : PA         [peripheralGPIOParams.get("SYS").get("SYS_SWCLK").value.get("Port")]
       - GPIO_Label :          [peripheralGPIOParams.get("SYS").get("SYS_SWCLK").value.get("GPIO_Label")]

     IP paramters configuration
    ---------------------------
    - instance :  TIM17       [peripheralParams.get("SYS").get("instance")]
    - driver :  HAL       [peripheralParams.get("SYS").get("driver")]
    - Instance :  SYS       [peripheralParams.get("SYS").get("Instance")]
    - DisableDeadBatterySignalsConfig :  SYSCFG_CFGR1_UCPD1_STROBE | SYSCFG_CFGR1_UCPD2_STROBE       [peripheralParams.get("SYS").get("DisableDeadBatterySignalsConfig")]

  ------------------------------------------------------------------------------
  -                         TIM1 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - S_TIM1_CH1 :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("GPIO_Speed")]
       - Pin : PA8         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("Port")]
       - GPIO_Label : I2C_MULTI_MASTER_INTR         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_8         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF2_TIM1         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH1").value.get("GPIO_AF")]
    - S_TIM1_CH4 :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("GPIO_Speed")]
       - Pin : PA11 [PA9]         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("Port")]
       - GPIO_Label : DO_LED_FUNC_G2         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_11         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF2_TIM1         [peripheralGPIOParams.get("TIM1").get("S_TIM1_CH4").value.get("GPIO_AF")]

     IP paramters configuration
    ---------------------------
    - RepetitionCounter :  0       [peripheralParams.get("TIM1").get("RepetitionCounter")]
    - Break2Filter :  0       [peripheralParams.get("TIM1").get("Break2Filter")]
    - LockLevel :  TIM_LOCKLEVEL_OFF       [peripheralParams.get("TIM1").get("LockLevel")]
    - SourceBRKDigInput :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM1").get("SourceBRKDigInput")]
    - ICPolarity_CH1 :  TIM_INPUTCHANNELPOLARITY_RISING       [peripheralParams.get("TIM1").get("ICPolarity_CH1")]
    - BreakFilter :  0       [peripheralParams.get("TIM1").get("BreakFilter")]
    - ICFilter_CH1 :  0       [peripheralParams.get("TIM1").get("ICFilter_CH1")]
    - Pulse_PWM Generation4 CH4 :  0       [peripheralParams.get("TIM1").get("Pulse_PWM Generation4 CH4")]
    - DeadTime :  0       [peripheralParams.get("TIM1").get("DeadTime")]
    - OCNIdleState_4 :  TIM_OCNIDLESTATE_RESET       [peripheralParams.get("TIM1").get("OCNIdleState_4")]
    - BreakAFMode :  TIM_BREAK_AFMODE_INPUT       [peripheralParams.get("TIM1").get("BreakAFMode")]
    - BreakState :  TIM_BREAK_DISABLE       [peripheralParams.get("TIM1").get("BreakState")]
    - Period :  65535       [peripheralParams.get("TIM1").get("Period")]
    - SourceBRK2DigInput :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM1").get("SourceBRK2DigInput")]
    - OffStateRunMode :  TIM_OSSR_DISABLE       [peripheralParams.get("TIM1").get("OffStateRunMode")]
    - TIM_MasterOutputTrigger2 :  TIM_TRGO2_RESET       [peripheralParams.get("TIM1").get("TIM_MasterOutputTrigger2")]
    - OffStateIDLEMode :  TIM_OSSI_DISABLE       [peripheralParams.get("TIM1").get("OffStateIDLEMode")]
    - OCIdleState_4 :  TIM_OCIDLESTATE_RESET       [peripheralParams.get("TIM1").get("OCIdleState_4")]
    - OCMode_PWM_PWM Generation4 CH4 :  TIM_OCMODE_PWM1       [peripheralParams.get("TIM1").get("OCMode_PWM_PWM Generation4 CH4")]
    - driver :  HAL       [peripheralParams.get("TIM1").get("driver")]
    - TIM_MasterOutputTrigger :  TIM_TRGO_RESET       [peripheralParams.get("TIM1").get("TIM_MasterOutputTrigger")]
    - Channel_Input_Capture1_from_TI1 :  TIM_CHANNEL_1       [peripheralParams.get("TIM1").get("Channel_Input_Capture1_from_TI1")]
    - BreakPolarity :  TIM_BREAKPOLARITY_HIGH       [peripheralParams.get("TIM1").get("BreakPolarity")]
    - ClockDivision :  TIM_CLOCKDIVISION_DIV1       [peripheralParams.get("TIM1").get("ClockDivision")]
    - AutoReloadPreload :  TIM_AUTORELOAD_PRELOAD_DISABLE       [peripheralParams.get("TIM1").get("AutoReloadPreload")]
    - Instance :  TIM$Index       [peripheralParams.get("TIM1").get("Instance")]
    - SeparateurSourceBRK :         [peripheralParams.get("TIM1").get("SeparateurSourceBRK")]
    - CounterMode :  TIM_COUNTERMODE_UP       [peripheralParams.get("TIM1").get("CounterMode")]
    - SeparateurSourceBRK2 :         [peripheralParams.get("TIM1").get("SeparateurSourceBRK2")]
    - Break2State :  TIM_BREAK2_DISABLE       [peripheralParams.get("TIM1").get("Break2State")]
    - Break2AFMode :  TIM_BREAK_AFMODE_INPUT       [peripheralParams.get("TIM1").get("Break2AFMode")]
    - ICSelection_Input_Capture1_from_TI1 :  TIM_ICSELECTION_DIRECTTI       [peripheralParams.get("TIM1").get("ICSelection_Input_Capture1_from_TI1")]
    - ClearInputState :  ENABLE       [peripheralParams.get("TIM1").get("ClearInputState")]
    - OCFastMode_PWM_PWM Generation4 CH4 :  TIM_OCFAST_DISABLE       [peripheralParams.get("TIM1").get("OCFastMode_PWM_PWM Generation4 CH4")]
    - OCPolarity_4 :  TIM_OCPOLARITY_HIGH       [peripheralParams.get("TIM1").get("OCPolarity_4")]
    - ClearChannel1 :         [peripheralParams.get("TIM1").get("ClearChannel1")]
    - ClearChannel4 :         [peripheralParams.get("TIM1").get("ClearChannel4")]
    - Break2Polarity :  TIM_BREAK2POLARITY_HIGH       [peripheralParams.get("TIM1").get("Break2Polarity")]
    - ClearChannel5 :         [peripheralParams.get("TIM1").get("ClearChannel5")]
    - ClearChannel2 :         [peripheralParams.get("TIM1").get("ClearChannel2")]
    - ClearChannel3 :         [peripheralParams.get("TIM1").get("ClearChannel3")]
    - SourceBRKCOMP3 :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM1").get("SourceBRKCOMP3")]
    - ClearChannel6 :         [peripheralParams.get("TIM1").get("ClearChannel6")]
    - ICPrescaler_Input_Capture1_from_TI1 :  TIM_ICPSC_DIV1       [peripheralParams.get("TIM1").get("ICPrescaler_Input_Capture1_from_TI1")]
    - SourceBRK2COMP3 :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM1").get("SourceBRK2COMP3")]
    - AutomaticOutput :  TIM_AUTOMATICOUTPUT_DISABLE       [peripheralParams.get("TIM1").get("AutomaticOutput")]
    - SourceBRKCOMP1 :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM1").get("SourceBRKCOMP1")]
    - SourceBRK2COMP1 :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM1").get("SourceBRK2COMP1")]
    - SourceBRKCOMP2 :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM1").get("SourceBRKCOMP2")]
    - SourceBRK2COMP2 :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM1").get("SourceBRK2COMP2")]
    - Channel_PWM Generation4 CH4 :  TIM_CHANNEL_4       [peripheralParams.get("TIM1").get("Channel_PWM Generation4 CH4")]
    - OC4Preload_PWM :  ENABLE       [peripheralParams.get("TIM1").get("OC4Preload_PWM")]
    - TIM_MasterSlaveMode :  TIM_MASTERSLAVEMODE_DISABLE       [peripheralParams.get("TIM1").get("TIM_MasterSlaveMode")]
    - Prescaler :  0       [peripheralParams.get("TIM1").get("Prescaler")]
    - ClearInputSource :  TIM_CLEARINPUTSOURCE_NONE       [peripheralParams.get("TIM1").get("ClearInputSource")]

  ------------------------------------------------------------------------------
  -                         TIM2 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     IP paramters configuration
    ---------------------------
    - driver :  HAL       [peripheralParams.get("TIM2").get("driver")]
    - ClockDivision :  TIM_CLOCKDIVISION_DIV1       [peripheralParams.get("TIM2").get("ClockDivision")]
    - AutoReloadPreload :  TIM_AUTORELOAD_PRELOAD_DISABLE       [peripheralParams.get("TIM2").get("AutoReloadPreload")]
    - Instance :  TIM$Index       [peripheralParams.get("TIM2").get("Instance")]
    - TIM_MasterSlaveMode :  TIM_MASTERSLAVEMODE_DISABLE       [peripheralParams.get("TIM2").get("TIM_MasterSlaveMode")]
    - TIM_MasterOutputTrigger :  TIM_TRGO_RESET       [peripheralParams.get("TIM2").get("TIM_MasterOutputTrigger")]
    - SeparateurSourceBRK :         [peripheralParams.get("TIM2").get("SeparateurSourceBRK")]
    - Prescaler :  0       [peripheralParams.get("TIM2").get("Prescaler")]
    - Period :  -1       [peripheralParams.get("TIM2").get("Period")]
    - CounterMode :  TIM_COUNTERMODE_UP       [peripheralParams.get("TIM2").get("CounterMode")]
    - SeparateurSourceBRK2 :         [peripheralParams.get("TIM2").get("SeparateurSourceBRK2")]

     Interrupt IP paramters configuration
    ---------------------------
    - TIM2_IRQn :
       - interruptPremptionPriority : 0         [peripheralNVICParams.get("TIM2").get("TIM2_IRQn").value.get("interruptPremptionPriority")]
       - Subriority : 0         [peripheralNVICParams.get("TIM2").get("TIM2_IRQn").value.get("Subriority")]

  ------------------------------------------------------------------------------
  -                         TIM3 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - S_TIM3_CH2 :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("GPIO_Speed")]
       - Pin : PC7         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("Pin")]
       - GPIOx : GPIOC         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("GPIO_PuPd")]
       - Port : PC         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("Port")]
       - GPIO_Label : TIM_AUTO_BAUD         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_7         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF1_TIM3         [peripheralGPIOParams.get("TIM3").get("S_TIM3_CH2").value.get("GPIO_AF")]

     IP paramters configuration
    ---------------------------
    - ICPolarity_CH2 :  TIM_INPUTCHANNELPOLARITY_RISING       [peripheralParams.get("TIM3").get("ICPolarity_CH2")]
    - ClockDivision :  TIM_CLOCKDIVISION_DIV1       [peripheralParams.get("TIM3").get("ClockDivision")]
    - AutoReloadPreload :  TIM_AUTORELOAD_PRELOAD_DISABLE       [peripheralParams.get("TIM3").get("AutoReloadPreload")]
    - Instance :  TIM$Index       [peripheralParams.get("TIM3").get("Instance")]
    - SeparateurSourceBRK :         [peripheralParams.get("TIM3").get("SeparateurSourceBRK")]
    - ICFilter_CH2 :  0       [peripheralParams.get("TIM3").get("ICFilter_CH2")]
    - ICSelection_Input_Capture2_from_TI2 :  TIM_ICSELECTION_DIRECTTI       [peripheralParams.get("TIM3").get("ICSelection_Input_Capture2_from_TI2")]
    - Period :  65535       [peripheralParams.get("TIM3").get("Period")]
    - Channel_Input_Capture2_from_TI2 :  TIM_CHANNEL_2       [peripheralParams.get("TIM3").get("Channel_Input_Capture2_from_TI2")]
    - CounterMode :  TIM_COUNTERMODE_UP       [peripheralParams.get("TIM3").get("CounterMode")]
    - SeparateurSourceBRK2 :         [peripheralParams.get("TIM3").get("SeparateurSourceBRK2")]
    - driver :  HAL       [peripheralParams.get("TIM3").get("driver")]
    - TIM_MasterSlaveMode :  TIM_MASTERSLAVEMODE_DISABLE       [peripheralParams.get("TIM3").get("TIM_MasterSlaveMode")]
    - TIM_MasterOutputTrigger :  TIM_TRGO_RESET       [peripheralParams.get("TIM3").get("TIM_MasterOutputTrigger")]
    - Prescaler :  0       [peripheralParams.get("TIM3").get("Prescaler")]
    - ICPrescaler_Input_Capture2_from_TI2 :  TIM_ICPSC_DIV1       [peripheralParams.get("TIM3").get("ICPrescaler_Input_Capture2_from_TI2")]

  ------------------------------------------------------------------------------
  -                         TIM15 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - S_TIM15_CH2 :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("GPIO_Speed")]
       - Pin : PB15         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("Port")]
       - GPIO_Label : DO_LED_FUNC_R         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_15         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF5_TIM15         [peripheralGPIOParams.get("TIM15").get("S_TIM15_CH2").value.get("GPIO_AF")]

     IP paramters configuration
    ---------------------------
    - OCNPolarity_2 :  TIM_OCNPOLARITY_HIGH       [peripheralParams.get("TIM15").get("OCNPolarity_2")]
    - ClockDivision :  TIM_CLOCKDIVISION_DIV1       [peripheralParams.get("TIM15").get("ClockDivision")]
    - RepetitionCounter :  0       [peripheralParams.get("TIM15").get("RepetitionCounter")]
    - AutoReloadPreload :  TIM_AUTORELOAD_PRELOAD_DISABLE       [peripheralParams.get("TIM15").get("AutoReloadPreload")]
    - Instance :  TIM$Index       [peripheralParams.get("TIM15").get("Instance")]
    - SeparateurSourceBRK :         [peripheralParams.get("TIM15").get("SeparateurSourceBRK")]
    - LockLevel :  TIM_LOCKLEVEL_OFF       [peripheralParams.get("TIM15").get("LockLevel")]
    - SourceBRKDigInput :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM15").get("SourceBRKDigInput")]
    - OCMode_PWM_PWM Generation2 CH2 :  TIM_OCMODE_PWM1       [peripheralParams.get("TIM15").get("OCMode_PWM_PWM Generation2 CH2")]
    - OCFastMode_PWM_PWM Generation2 CH2 :  TIM_OCFAST_DISABLE       [peripheralParams.get("TIM15").get("OCFastMode_PWM_PWM Generation2 CH2")]
    - CounterMode :  TIM_COUNTERMODE_UP       [peripheralParams.get("TIM15").get("CounterMode")]
    - SeparateurSourceBRK2 :         [peripheralParams.get("TIM15").get("SeparateurSourceBRK2")]
    - OC2Preload_PWM :  ENABLE       [peripheralParams.get("TIM15").get("OC2Preload_PWM")]
    - BreakFilter :  0       [peripheralParams.get("TIM15").get("BreakFilter")]
    - Channel_PWM Generation2 CH2 :  TIM_CHANNEL_2       [peripheralParams.get("TIM15").get("Channel_PWM Generation2 CH2")]
    - OCPolarity_2 :  TIM_OCPOLARITY_HIGH       [peripheralParams.get("TIM15").get("OCPolarity_2")]
    - SourceBRKCOMP3 :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM15").get("SourceBRKCOMP3")]
    - AutomaticOutput :  TIM_AUTOMATICOUTPUT_DISABLE       [peripheralParams.get("TIM15").get("AutomaticOutput")]
    - DeadTime :  0       [peripheralParams.get("TIM15").get("DeadTime")]
    - SourceBRKCOMP1 :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM15").get("SourceBRKCOMP1")]
    - SourceBRKCOMP2 :  TIM_BREAKINPUTSOURCE_DISABLE       [peripheralParams.get("TIM15").get("SourceBRKCOMP2")]
    - BreakState :  TIM_BREAK_DISABLE       [peripheralParams.get("TIM15").get("BreakState")]
    - Period :  65535       [peripheralParams.get("TIM15").get("Period")]
    - OffStateRunMode :  TIM_OSSR_DISABLE       [peripheralParams.get("TIM15").get("OffStateRunMode")]
    - OCNIdleState_2 :  TIM_OCNIDLESTATE_RESET       [peripheralParams.get("TIM15").get("OCNIdleState_2")]
    - OffStateIDLEMode :  TIM_OSSI_DISABLE       [peripheralParams.get("TIM15").get("OffStateIDLEMode")]
    - OCIdleState_2 :  TIM_OCIDLESTATE_RESET       [peripheralParams.get("TIM15").get("OCIdleState_2")]
    - driver :  HAL       [peripheralParams.get("TIM15").get("driver")]
    - TIM_MasterSlaveMode :  TIM_MASTERSLAVEMODE_DISABLE       [peripheralParams.get("TIM15").get("TIM_MasterSlaveMode")]
    - TIM_MasterOutputTrigger :  TIM_TRGO_RESET       [peripheralParams.get("TIM15").get("TIM_MasterOutputTrigger")]
    - Prescaler :  0       [peripheralParams.get("TIM15").get("Prescaler")]
    - BreakPolarity :  TIM_BREAKPOLARITY_HIGH       [peripheralParams.get("TIM15").get("BreakPolarity")]
    - Pulse_PWM Generation2 CH2 :  0       [peripheralParams.get("TIM15").get("Pulse_PWM Generation2 CH2")]

  ------------------------------------------------------------------------------
  -                         USART1 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - USART1_TX :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("GPIO_Speed")]
       - GPIO_FM6 : __NULL         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("GPIO_FM6")]
       - Pin : PB6         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("GPIOx")]
       - GPIO_PuPd : GPIO_PULLUP         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("Port")]
       - GPIO_Label : USART_DEBUG_TX         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_6         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF0_USART1         [peripheralGPIOParams.get("USART1").get("USART1_TX").value.get("GPIO_AF")]
    - USART1_RX :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("GPIO_Speed")]
       - Pin : PB7         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("GPIOx")]
       - GPIO_PuPd : GPIO_PULLUP         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("Port")]
       - GPIO_Label : USART_DEBUG_RX         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_7         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF0_USART1         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("GPIO_AF")]
       - GPIO_FM7 : __NULL         [peripheralGPIOParams.get("USART1").get("USART1_RX").value.get("GPIO_FM7")]

     IP paramters configuration
    ---------------------------
    - StopBits :  STOPBITS_1       [peripheralParams.get("USART1").get("StopBits")]
    - AutoBaudRateEnableParam :  UART_ADVFEATURE_AUTOBAUDRATE_DISABLE       [peripheralParams.get("USART1").get("AutoBaudRateEnableParam")]
    - MSBFirstParam :  ADVFEATURE_MSBFIRST_DISABLE       [peripheralParams.get("USART1").get("MSBFirstParam")]
    - HwFlowCtl :  UART_HWCONTROL_NONE       [peripheralParams.get("USART1").get("HwFlowCtl")]
    - ClockPrescaler :  PRESCALER_DIV1       [peripheralParams.get("USART1").get("ClockPrescaler")]
    - FIFOMode :  FIFOMODE_DISABLE       [peripheralParams.get("USART1").get("FIFOMode")]
    - TXFIFOThreshold :  TXFIFO_THRESHOLD_1EIGHTHFULL       [peripheralParams.get("USART1").get("TXFIFOThreshold")]
    - Instance :  USART$Index       [peripheralParams.get("USART1").get("Instance")]
    - Mode :  MODE_TX_RX       [peripheralParams.get("USART1").get("Mode")]
    - OneBitSampling :  UART_ONE_BIT_SAMPLE_DISABLE       [peripheralParams.get("USART1").get("OneBitSampling")]
    - OverrunDisableParam :  ADVFEATURE_OVERRUN_ENABLE       [peripheralParams.get("USART1").get("OverrunDisableParam")]
    - OverSampling :  UART_OVERSAMPLING_16       [peripheralParams.get("USART1").get("OverSampling")]
    - RXFIFOThreshold :  RXFIFO_THRESHOLD_1EIGHTHFULL       [peripheralParams.get("USART1").get("RXFIFOThreshold")]
    - DMADisableonRxErrorParam :  ADVFEATURE_DMA_ENABLEONRXERROR       [peripheralParams.get("USART1").get("DMADisableonRxErrorParam")]
    - TxPinLevelInvertParam :  ADVFEATURE_TXINV_DISABLE       [peripheralParams.get("USART1").get("TxPinLevelInvertParam")]
    - driver :  HAL       [peripheralParams.get("USART1").get("driver")]
    - BaudRate :  115200       [peripheralParams.get("USART1").get("BaudRate")]
    - SwapParam :  ADVFEATURE_SWAP_DISABLE       [peripheralParams.get("USART1").get("SwapParam")]
    - DataInvertParam :  ADVFEATURE_DATAINV_DISABLE       [peripheralParams.get("USART1").get("DataInvertParam")]
    - WordLength :  WORDLENGTH_8B       [peripheralParams.get("USART1").get("WordLength")]
    - VirtualMode_Asynchronous :  VM_ASYNC       [peripheralParams.get("USART1").get("VirtualMode_Asynchronous")]
    - Parity :  PARITY_NONE       [peripheralParams.get("USART1").get("Parity")]
    - RxPinLevelInvertParam :  ADVFEATURE_RXINV_DISABLE       [peripheralParams.get("USART1").get("RxPinLevelInvertParam")]

     Interrupt IP paramters configuration
    ---------------------------
    - USART1_IRQn :
       - interruptPremptionPriority : 0         [peripheralNVICParams.get("USART1").get("USART1_IRQn").value.get("interruptPremptionPriority")]
       - Subriority : 0         [peripheralNVICParams.get("USART1").get("USART1_IRQn").value.get("Subriority")]

  ------------------------------------------------------------------------------
  -                         USART2 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - USART2_TX :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("GPIO_Speed")]
       - Pin : PA2         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("Port")]
       - GPIO_Label : USART_DOWNLOAD_TX         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_2         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF1_USART2         [peripheralGPIOParams.get("USART2").get("USART2_TX").value.get("GPIO_AF")]
    - USART2_RX :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("GPIO_Speed")]
       - Pin : PA3         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("Port")]
       - GPIO_Label : USART_DOWNLOAD_RX         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_3         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF1_USART2         [peripheralGPIOParams.get("USART2").get("USART2_RX").value.get("GPIO_AF")]

     IP paramters configuration
    ---------------------------
    - StopBits :  STOPBITS_1       [peripheralParams.get("USART2").get("StopBits")]
    - AutoBaudRateEnableParam :  UART_ADVFEATURE_AUTOBAUDRATE_DISABLE       [peripheralParams.get("USART2").get("AutoBaudRateEnableParam")]
    - MSBFirstParam :  ADVFEATURE_MSBFIRST_DISABLE       [peripheralParams.get("USART2").get("MSBFirstParam")]
    - HwFlowCtl :  UART_HWCONTROL_NONE       [peripheralParams.get("USART2").get("HwFlowCtl")]
    - ClockPrescaler :  PRESCALER_DIV1       [peripheralParams.get("USART2").get("ClockPrescaler")]
    - FIFOMode :  FIFOMODE_DISABLE       [peripheralParams.get("USART2").get("FIFOMode")]
    - TXFIFOThreshold :  TXFIFO_THRESHOLD_1EIGHTHFULL       [peripheralParams.get("USART2").get("TXFIFOThreshold")]
    - Instance :  USART$Index       [peripheralParams.get("USART2").get("Instance")]
    - Mode :  MODE_TX_RX       [peripheralParams.get("USART2").get("Mode")]
    - OneBitSampling :  UART_ONE_BIT_SAMPLE_DISABLE       [peripheralParams.get("USART2").get("OneBitSampling")]
    - OverrunDisableParam :  ADVFEATURE_OVERRUN_ENABLE       [peripheralParams.get("USART2").get("OverrunDisableParam")]
    - OverSampling :  UART_OVERSAMPLING_16       [peripheralParams.get("USART2").get("OverSampling")]
    - RXFIFOThreshold :  RXFIFO_THRESHOLD_1EIGHTHFULL       [peripheralParams.get("USART2").get("RXFIFOThreshold")]
    - DMADisableonRxErrorParam :  ADVFEATURE_DMA_ENABLEONRXERROR       [peripheralParams.get("USART2").get("DMADisableonRxErrorParam")]
    - TxPinLevelInvertParam :  ADVFEATURE_TXINV_DISABLE       [peripheralParams.get("USART2").get("TxPinLevelInvertParam")]
    - driver :  HAL       [peripheralParams.get("USART2").get("driver")]
    - BaudRate :  9600       [peripheralParams.get("USART2").get("BaudRate")]
    - SwapParam :  ADVFEATURE_SWAP_DISABLE       [peripheralParams.get("USART2").get("SwapParam")]
    - DataInvertParam :  ADVFEATURE_DATAINV_DISABLE       [peripheralParams.get("USART2").get("DataInvertParam")]
    - WordLength :  WORDLENGTH_8B       [peripheralParams.get("USART2").get("WordLength")]
    - VirtualMode_Asynchronous :  VM_ASYNC       [peripheralParams.get("USART2").get("VirtualMode_Asynchronous")]
    - Parity :  PARITY_NONE       [peripheralParams.get("USART2").get("Parity")]
    - RxPinLevelInvertParam :  ADVFEATURE_RXINV_DISABLE       [peripheralParams.get("USART2").get("RxPinLevelInvertParam")]

  ------------------------------------------------------------------------------
  -                         USART3 Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - USART3_TX :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("GPIO_Speed")]
       - Pin : PB10         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("Port")]
       - GPIO_Label : USART_485_TX         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_10         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF4_USART3         [peripheralGPIOParams.get("USART3").get("USART3_TX").value.get("GPIO_AF")]
    - USART3_RTS :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("GPIO_Speed")]
       - Pin : PB14         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("Port")]
       - GPIO_Label : USART_485_RTS         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_14         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF4_USART3         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("GPIO_AF")]
       - GPIO_Mode : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("USART3").get("USART3_RTS").value.get("GPIO_Mode")]
    - USART3_RX :
       - GPIO_ModeDefaultPP : GPIO_MODE_AF_PP         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("GPIO_ModeDefaultPP")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("GPIO_Speed")]
       - Pin : PB11         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("Port")]
       - GPIO_Label : USART_485_RX         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_11         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("GPIO_Pin")]
       - GPIO_AF : GPIO_AF4_USART3         [peripheralGPIOParams.get("USART3").get("USART3_RX").value.get("GPIO_AF")]

     IP paramters configuration
    ---------------------------
    - StopBits :  STOPBITS_1       [peripheralParams.get("USART3").get("StopBits")]
    - AutoBaudRateEnableParam :  UART_ADVFEATURE_AUTOBAUDRATE_DISABLE       [peripheralParams.get("USART3").get("AutoBaudRateEnableParam")]
    - MSBFirstParam :  ADVFEATURE_MSBFIRST_DISABLE       [peripheralParams.get("USART3").get("MSBFirstParam")]
    - HwFlowCtl :  UART_HWCONTROL_RTS       [peripheralParams.get("USART3").get("HwFlowCtl")]
    - ClockPrescaler :  PRESCALER_DIV1       [peripheralParams.get("USART3").get("ClockPrescaler")]
    - FIFOMode :  FIFOMODE_DISABLE       [peripheralParams.get("USART3").get("FIFOMode")]
    - TXFIFOThreshold :  TXFIFO_THRESHOLD_1EIGHTHFULL       [peripheralParams.get("USART3").get("TXFIFOThreshold")]
    - Instance :  USART$Index       [peripheralParams.get("USART3").get("Instance")]
    - Mode :  MODE_TX_RX       [peripheralParams.get("USART3").get("Mode")]
    - OneBitSampling :  UART_ONE_BIT_SAMPLE_DISABLE       [peripheralParams.get("USART3").get("OneBitSampling")]
    - OverrunDisableParam :  ADVFEATURE_OVERRUN_ENABLE       [peripheralParams.get("USART3").get("OverrunDisableParam")]
    - OverSampling :  UART_OVERSAMPLING_16       [peripheralParams.get("USART3").get("OverSampling")]
    - RXFIFOThreshold :  RXFIFO_THRESHOLD_1EIGHTHFULL       [peripheralParams.get("USART3").get("RXFIFOThreshold")]
    - DMADisableonRxErrorParam :  ADVFEATURE_DMA_ENABLEONRXERROR       [peripheralParams.get("USART3").get("DMADisableonRxErrorParam")]
    - TxPinLevelInvertParam :  ADVFEATURE_TXINV_DISABLE       [peripheralParams.get("USART3").get("TxPinLevelInvertParam")]
    - driver :  HAL       [peripheralParams.get("USART3").get("driver")]
    - BaudRate :  9600       [peripheralParams.get("USART3").get("BaudRate")]
    - SwapParam :  ADVFEATURE_SWAP_DISABLE       [peripheralParams.get("USART3").get("SwapParam")]
    - DataInvertParam :  ADVFEATURE_DATAINV_DISABLE       [peripheralParams.get("USART3").get("DataInvertParam")]
    - WordLength :  WORDLENGTH_8B       [peripheralParams.get("USART3").get("WordLength")]
    - VirtualMode_Asynchronous :  VM_ASYNC       [peripheralParams.get("USART3").get("VirtualMode_Asynchronous")]
    - Parity :  PARITY_NONE       [peripheralParams.get("USART3").get("Parity")]
    - RxPinLevelInvertParam :  ADVFEATURE_RXINV_DISABLE       [peripheralParams.get("USART3").get("RxPinLevelInvertParam")]

  ------------------------------------------------------------------------------
  -                         NVIC Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     IP paramters configuration
    ---------------------------
    - driver :  HAL       [peripheralParams.get("NVIC").get("driver")]
    - Instance :  NVIC       [peripheralParams.get("NVIC").get("Instance")]

  ------------------------------------------------------------------------------
  -                         GPIO Configuration data  : Driver type = HAL
  ------------------------------------------------------------------------------
     GPIO configuration
    -------------------
    - PA1 :
       - Pin : PA1         [peripheralGPIOParams.get("GPIO").get("PA1").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("GPIO").get("PA1").value.get("GPIOx")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PA1").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("GPIO").get("PA1").value.get("Port")]
       - GPIO_Label :          [peripheralGPIOParams.get("GPIO").get("PA1").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_1         [peripheralGPIOParams.get("GPIO").get("PA1").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultEXTI : GPIO_MODE_IT_RISING         [peripheralGPIOParams.get("GPIO").get("PA1").value.get("GPIO_ModeDefaultEXTI")]
    - PB2 :
       - Pin : PB2         [peripheralGPIOParams.get("GPIO").get("PB2").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("GPIO").get("PB2").value.get("GPIOx")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PB2").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("GPIO").get("PB2").value.get("Port")]
       - GPIO_Label : I2C_NFC_INT         [peripheralGPIOParams.get("GPIO").get("PB2").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_2         [peripheralGPIOParams.get("GPIO").get("PB2").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultEXTI : GPIO_MODE_IT_RISING         [peripheralGPIOParams.get("GPIO").get("PB2").value.get("GPIO_ModeDefaultEXTI")]
    - PA6 :
       - Pin : PA6         [peripheralGPIOParams.get("GPIO").get("PA6").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("GPIO").get("PA6").value.get("GPIOx")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PA6").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("GPIO").get("PA6").value.get("Port")]
       - GPIO_Label : DI_POWER_GOOD         [peripheralGPIOParams.get("GPIO").get("PA6").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_6         [peripheralGPIOParams.get("GPIO").get("PA6").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultEXTI : GPIO_MODE_IT_FALLING         [peripheralGPIOParams.get("GPIO").get("PA6").value.get("GPIO_ModeDefaultEXTI")]
    - PA7 :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PA7").value.get("GPIO_Speed")]
       - Pin : PA7         [peripheralGPIOParams.get("GPIO").get("PA7").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("GPIO").get("PA7").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PA7").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PA7").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("GPIO").get("PA7").value.get("Port")]
       - GPIO_Label : DO_SUPCAP_TCHRG         [peripheralGPIOParams.get("GPIO").get("PA7").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_7         [peripheralGPIOParams.get("GPIO").get("PA7").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PA7").value.get("GPIO_ModeDefaultOutputPP")]
    - PA12 [PA10] :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PA12 [PA10]").value.get("GPIO_Speed")]
       - Pin : PA12 [PA10]         [peripheralGPIOParams.get("GPIO").get("PA12 [PA10]").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("GPIO").get("PA12 [PA10]").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PA12 [PA10]").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PA12 [PA10]").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("GPIO").get("PA12 [PA10]").value.get("Port")]
       - GPIO_Label : DO_LED_FUNC_G3         [peripheralGPIOParams.get("GPIO").get("PA12 [PA10]").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_12         [peripheralGPIOParams.get("GPIO").get("PA12 [PA10]").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PA12 [PA10]").value.get("GPIO_ModeDefaultOutputPP")]
    - PB13 :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PB13").value.get("GPIO_Speed")]
       - Pin : PB13         [peripheralGPIOParams.get("GPIO").get("PB13").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("GPIO").get("PB13").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PB13").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PB13").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("GPIO").get("PB13").value.get("Port")]
       - GPIO_Label : DO_485_TERMINAL_EN         [peripheralGPIOParams.get("GPIO").get("PB13").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_13         [peripheralGPIOParams.get("GPIO").get("PB13").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PB13").value.get("GPIO_ModeDefaultOutputPP")]
    - PA10 :
       - GPIO_FMPA10 : __NULL         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("GPIO_FMPA10")]
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("GPIO_Speed")]
       - Pin : PA10         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("Pin")]
       - GPIOx : GPIOA         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("GPIO_PuPd")]
       - Port : PA         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("Port")]
       - GPIO_Label : DO_LED_FUNC_G1         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_10         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PA10").value.get("GPIO_ModeDefaultOutputPP")]
    - PB12 :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PB12").value.get("GPIO_Speed")]
       - Pin : PB12         [peripheralGPIOParams.get("GPIO").get("PB12").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("GPIO").get("PB12").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PB12").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PB12").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("GPIO").get("PB12").value.get("Port")]
       - GPIO_Label : DO_485_SWTICH         [peripheralGPIOParams.get("GPIO").get("PB12").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_12         [peripheralGPIOParams.get("GPIO").get("PB12").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PB12").value.get("GPIO_ModeDefaultOutputPP")]
    - PD1 :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PD1").value.get("GPIO_Speed")]
       - Pin : PD1         [peripheralGPIOParams.get("GPIO").get("PD1").value.get("Pin")]
       - GPIOx : GPIOD         [peripheralGPIOParams.get("GPIO").get("PD1").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PD1").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PD1").value.get("GPIO_PuPd")]
       - Port : PD         [peripheralGPIOParams.get("GPIO").get("PD1").value.get("Port")]
       - GPIO_Label : DO_FRONTEND_BOOT         [peripheralGPIOParams.get("GPIO").get("PD1").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_1         [peripheralGPIOParams.get("GPIO").get("PD1").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PD1").value.get("GPIO_ModeDefaultOutputPP")]
    - PD0 :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PD0").value.get("GPIO_Speed")]
       - Pin : PD0         [peripheralGPIOParams.get("GPIO").get("PD0").value.get("Pin")]
       - GPIOx : GPIOD         [peripheralGPIOParams.get("GPIO").get("PD0").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PD0").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PD0").value.get("GPIO_PuPd")]
       - Port : PD         [peripheralGPIOParams.get("GPIO").get("PD0").value.get("Port")]
       - GPIO_Label : DO_FRONTEND_RST         [peripheralGPIOParams.get("GPIO").get("PD0").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_0         [peripheralGPIOParams.get("GPIO").get("PD0").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PD0").value.get("GPIO_ModeDefaultOutputPP")]
    - PB1 :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PB1").value.get("GPIO_Speed")]
       - Pin : PB1         [peripheralGPIOParams.get("GPIO").get("PB1").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("GPIO").get("PB1").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PB1").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PB1").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("GPIO").get("PB1").value.get("Port")]
       - GPIO_Label : DO_SUPCAP_FCHRG         [peripheralGPIOParams.get("GPIO").get("PB1").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_1         [peripheralGPIOParams.get("GPIO").get("PB1").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PB1").value.get("GPIO_ModeDefaultOutputPP")]
    - PD3 :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PD3").value.get("GPIO_Speed")]
       - Pin : PD3         [peripheralGPIOParams.get("GPIO").get("PD3").value.get("Pin")]
       - GPIOx : GPIOD         [peripheralGPIOParams.get("GPIO").get("PD3").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PD3").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PD3").value.get("GPIO_PuPd")]
       - Port : PD         [peripheralGPIOParams.get("GPIO").get("PD3").value.get("Port")]
       - GPIO_Label : DO_CONTACT1_SUPPLY_OUTPUT         [peripheralGPIOParams.get("GPIO").get("PD3").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_3         [peripheralGPIOParams.get("GPIO").get("PD3").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PD3").value.get("GPIO_ModeDefaultOutputPP")]
    - PB0 :
       - GPIO_Speed : GPIO_SPEED_FREQ_LOW         [peripheralGPIOParams.get("GPIO").get("PB0").value.get("GPIO_Speed")]
       - Pin : PB0         [peripheralGPIOParams.get("GPIO").get("PB0").value.get("Pin")]
       - GPIOx : GPIOB         [peripheralGPIOParams.get("GPIO").get("PB0").value.get("GPIOx")]
       - PinState : GPIO_PIN_RESET         [peripheralGPIOParams.get("GPIO").get("PB0").value.get("PinState")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PB0").value.get("GPIO_PuPd")]
       - Port : PB         [peripheralGPIOParams.get("GPIO").get("PB0").value.get("Port")]
       - GPIO_Label : DO_SUPCAP_POWER_EN         [peripheralGPIOParams.get("GPIO").get("PB0").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_0         [peripheralGPIOParams.get("GPIO").get("PB0").value.get("GPIO_Pin")]
       - GPIO_ModeDefaultOutputPP : GPIO_MODE_OUTPUT_PP         [peripheralGPIOParams.get("GPIO").get("PB0").value.get("GPIO_ModeDefaultOutputPP")]
    - PD2 :
       - Pin : PD2         [peripheralGPIOParams.get("GPIO").get("PD2").value.get("Pin")]
       - GPIOx : GPIOD         [peripheralGPIOParams.get("GPIO").get("PD2").value.get("GPIOx")]
       - GPIO_PuPd : GPIO_NOPULL         [peripheralGPIOParams.get("GPIO").get("PD2").value.get("GPIO_PuPd")]
       - Port : PD         [peripheralGPIOParams.get("GPIO").get("PD2").value.get("Port")]
       - GPIO_Label : DI_CONTACT1_INPUT         [peripheralGPIOParams.get("GPIO").get("PD2").value.get("GPIO_Label")]
       - GPIO_Pin : GPIO_PIN_2         [peripheralGPIOParams.get("GPIO").get("PD2").value.get("GPIO_Pin")]
       - GPIO_Mode : GPIO_MODE_INPUT         [peripheralGPIOParams.get("GPIO").get("PD2").value.get("GPIO_Mode")]

     IP paramters configuration
    ---------------------------
    - driver :  HAL       [peripheralParams.get("GPIO").get("driver")]
    - Instance :  GPIO       [peripheralParams.get("GPIO").get("Instance")]


MX_Device_h.ftl

[#ftl]
[#list configs as dt]
[#assign data = dt]
[#assign peripheralParams = dt.peripheralParams]
[#assign peripheralGPIOParams = dt.peripheralGPIOParams]
[#assign peripheralDMAParams = dt.peripheralDMAParams]
[#assign peripheralNVICParams = dt.peripheralNVICParams]
[#assign usedIPs = dt.usedIPs]
/******************************************************************************
 * File Name   : MX_Device.h
 * Date        : ${date}
 * Description : STM32Cube MX parameter definitions
 * Note        : This file is generated by STM32CubeMX (DO NOT EDIT!)
 ******************************************************************************/

#ifndef __MX_DEVICE_H
#define __MX_DEVICE_H


/*---------------------------- Clock Configuration ---------------------------*/

[#list [
    "LSI_VALUE",
    "LSE_VALUE",
    "HSI_VALUE",
    "HSE_VALUE",
    "EXTERNAL_CLOCK_VALUE",
    "PLLCLKFreq_Value",
    "PLLQCLKFreq_Value",
    "PLLRCLKFreq_Value",
    "PLLSAIPCLKFreq_Value"
    "PLLSAIQCLKFreq_Value",
    "PLLI2SPCLKFreq_Value",
    "PLLI2SQCLKFreq_Value",
    "PLLI2SRCLKFreq_Value",
    "PLLDSIFreq_Value",
    "SYSCLKFreq_VALUE",
    "HCLKFreq_Value",
    "FCLKCortexFreq_Value",
    "CortexFreq_Value",
    "AHBFreq_Value",
    "APB1Freq_Value",
    "APB2Freq_Value",
    "APB1TimFreq_Value",
    "APB2TimFreq_Value",
    "48MHZClocksFreq_Value",
    "EthernetFreq_Value",
    "CECFreq_Value",
    "LCDTFTFreq_Value",
    "I2SFreq_Value",
    "I2S1Freq_Value",
    "I2S2Freq_Value",
    "I2SClocksFreq_Value",
    "SAIAFreq_Value",
    "SAIBFreq_Value",
    "SAI_AClocksFreq_Value",
    "SAI_BClocksFreq_Value",
    "SDIOFreq_Value",
    "PWRFreq_Value",
    "RTCFreq_Value",
    "USBFreq_Value",
    "WatchDogFreq_Value",
    "DSIFreq_Value",
    "DSIPHYCLKFreq_Value",
    "DSITXEscFreq_Value",
    "FMPI2C1Freq_Value",
    "SPDIFRXFreq_Value",
    "MCO1PinFreq_Value",
    "MCO2PinFreq_Value"
  ] as key]
[#if peripheralParams.get("RCC").get(key)??]
[@CreateDefine name=key value=peripheralParams.get("RCC").get(key)/]
[/#if]
[/#list]

[#list usedIPs as ip]
[#if peripheralParams.get(ip)??]
/*-------------------------------- ${ip?right_pad(10)} --------------------------------*/

[@CreateDefine name=ip value="1"/]

[#if ip?starts_with("USART")]
[#assign vm_none = 1]
[#list peripheralParams.get(ip).entrySet() as paramEntry]
[#if paramEntry.key?starts_with("VirtualMode")]
[#assign vm_none = 0]
[@CreateDefine name=ip+"_VM" value=paramEntry.value/]
[/#if]
[/#list]
[#if vm_none == 1]
[@CreateDefine name=ip+"_VM" value="VM_UNKNOWN"/]
[/#if]
[/#if]
[#if ip?starts_with("UART")]
[#assign irdaFlag = 0]
[#assign asyncFlag = 0]
[#list peripheralParams.get(ip).entrySet() as paramEntry]
[#if paramEntry.key?starts_with("PowerMode") && paramEntry.value?starts_with("IRDA")]
[#assign irdaFlag = 1]
[#elseif paramEntry.key?starts_with("BaudRate")]
[#assign asyncFlag = 1]
[/#if]
[/#list]
[#if irdaFlag == 1]
[@CreateDefine name=ip+"_VM" value="VM_IRDA"/]
[#elseif asyncFlag == 1]
[@CreateDefine name=ip+"_VM" value="VM_ASYNC"/]
[#else]
[@CreateDefine name=ip+"_VM" value="VM_UNKNOWN"/]
[/#if]
[/#if]
[#if ip?starts_with("USB_OTG")]
[#list peripheralParams.get(ip).entrySet() as paramEntry]
[#if paramEntry.key?starts_with("VirtualMode")]
[#if paramEntry.value?starts_with("Device")]
[@CreateDefine name=ip+"_DEVICE" value="1"/]
[#elseif paramEntry.value?starts_with("Host")]
[@CreateDefine name=ip+"_HOST" value="1"/]
[#else]
[@CreateDefine name=ip+"_DEVICE" value="1"/]
[@CreateDefine name=ip+"_HOST" value="1"/]
[/#if]
[/#if]
[/#list]
[/#if]

[#if peripheralGPIOParams.get(ip)??]
/* GPIO Configuration */

[#list peripheralGPIOParams.get(ip).entrySet() as gpioParamEntry]
[#assign PinName=gpioParamEntry.value.get("Pin")]
/* Pin ${PinName} */
[#list gpioParamEntry.value.entrySet() as gpioParam]
[#if gpioParam.value?length > 0]
[#assign ParamValue=gpioParam.value]
[#if ip == "GPIO"]
[#if     gpioParam.key == "GPIO_Label"]
[@CreateDefine name=ParamValue value=PinName/]
[#elseif gpioParam.key != "Port"]
[@CreateDefine name=PinName+"_"+gpioParam.key value=ParamValue/]
[/#if]
[#else]
[#if     gpioParam.key == "GPIO_Label"]
[@CreateDefine name=ParamValue value=gpioParamEntry.key/]
[#elseif gpioParam.key != "Port"]
[@CreateDefine name=gpioParamEntry.key+"_"+gpioParam.key value=ParamValue/]
[/#if]
[/#if]
[/#if]
[/#list]

[/#list]
[/#if]
[#if peripheralDMAParams.get(ip)?? && peripheralDMAParams.get(ip).entrySet()?size > 0]
/* DMA Configuration */

[#list peripheralDMAParams.get(ip).entrySet() as dmaParamEntry]
/* DMA ${dmaParamEntry.key} */
[#list dmaParamEntry.value.entrySet() as dmaParam]
[@CreateDefine name=dmaParamEntry.key+"_DMA_"+dmaParam.key value=dmaParam.value/]
[/#list]

[/#list]
[/#if]
[#if peripheralNVICParams.get(ip)?? && peripheralNVICParams.get(ip).entrySet()?size > 0]
/* NVIC Configuration */

[#list peripheralNVICParams.get(ip).entrySet() as nvicParamEntry]
/* NVIC ${nvicParamEntry.key} */
[#list nvicParamEntry.value.entrySet() as nvicParam]
[@CreateDefine name=nvicParamEntry.key+"_"+nvicParam.key value=nvicParam.value/]
[/#list]

[/#list]
[/#if]
[/#if]
[/#list]

#endif  /* __MX_DEVICE_H */

[/#list]
[#macro CreateDefine name, value]
[#assign tmpName=name?replace("-","_")]
[#assign tmpName=tmpName?replace(" ","_")]
[#assign tmpName=tmpName?replace("/","_")]
[#assign tmpName=tmpName?replace("(","")]
[#assign tmpName=tmpName?replace(")","")]
[#assign tmpName=tmpName?replace("[","")]
[#assign tmpName=tmpName?replace("]","")]
[#assign tmpValue=value?replace("-","_")]
[#assign tmpValue=tmpValue?replace(" ","_")]
[#assign tmpValue=tmpValue?replace("/","_")]
[#assign tmpValue=tmpValue?replace("(","")]
[#assign tmpValue=tmpValue?replace(")","")]
[#assign tmpValue=tmpValue?replace("[","")]
[#assign tmpValue=tmpValue?replace("]","")]
#define ${("MX_" + tmpName)?right_pad(39)} ${tmpValue}
[/#macro]

生成MX_Device.h代码如下

/******************************************************************************
 * File Name   : MX_Device.h
 * Date        : 25/10/2022 14:25:05
 * Description : STM32Cube MX parameter definitions
 * Note        : This file is generated by STM32CubeMX (DO NOT EDIT!)
 ******************************************************************************/

#ifndef __MX_DEVICE_H
#define __MX_DEVICE_H

/*---------------------------- Clock Configuration ---------------------------*/

#define MX_LSI_VALUE                            32000
#define MX_LSE_VALUE                            32768
#define MX_HSI_VALUE                            16000000
#define MX_HSE_VALUE                            8000000
#define MX_EXTERNAL_CLOCK_VALUE                 48000
#define MX_SYSCLKFreq_VALUE                     64000000
#define MX_HCLKFreq_Value                       16000000
#define MX_FCLKCortexFreq_Value                 16000000
#define MX_CortexFreq_Value                     16000000
#define MX_AHBFreq_Value                        16000000
#define MX_CECFreq_Value                        32786
#define MX_I2S1Freq_Value                       64000000
#define MX_PWRFreq_Value                        64000000
#define MX_RTCFreq_Value                        32000
#define MX_USBFreq_Value                        48000000
#define MX_WatchDogFreq_Value                   32000
#define MX_MCO1PinFreq_Value                    64000000
#define MX_MCO2PinFreq_Value                    64000000

/*-------------------------------- ADC1       --------------------------------*/

#define MX_ADC1                                 1

/* GPIO Configuration */

/* Pin PA5 */
#define MX_ADC1_IN5_Pin                         PA5
#define MX_ADC1_IN5_GPIOx                       GPIOA
#define MX_ADC1_IN5_GPIO_PuPd                   GPIO_NOPULL
#define MX_ADC_V_SUPCAP                         ADC1_IN5
#define MX_ADC1_IN5_GPIO_Pin                    GPIO_PIN_5
#define MX_ADC1_IN5_GPIO_Mode                   GPIO_MODE_ANALOG

/* Pin PA1 */
#define MX_ADC1_IN1_Pin                         PA1
#define MX_ADC1_IN1_GPIOx                       GPIOA
#define MX_ADC1_IN1_GPIO_PuPd                   GPIO_NOPULL
#define MX_ADC_VCC                              ADC1_IN1
#define MX_ADC1_IN1_GPIO_Pin                    GPIO_PIN_1
#define MX_ADC1_IN1_GPIO_Mode                   GPIO_MODE_ANALOG

/* Pin PA0 */
#define MX_ADC1_IN0_Pin                         PA0
#define MX_ADC1_IN0_GPIOx                       GPIOA
#define MX_ADC1_IN0_GPIO_PuPd                   GPIO_NOPULL
#define MX_ADC_V_VARIANT                        ADC1_IN0
#define MX_ADC1_IN0_GPIO_Pin                    GPIO_PIN_0
#define MX_ADC1_IN0_GPIO_Mode                   GPIO_MODE_ANALOG

/* DMA Configuration */

/* DMA ADC1 */
#define MX_ADC1_DMA_Instance                    DMA1_Channel1
#define MX_ADC1_DMA_Priority                    DMA_PRIORITY_LOW
#define MX_ADC1_DMA_MemDataAlignment            DMA_MDATAALIGN_WORD
#define MX_ADC1_DMA_Mode                        DMA_CIRCULAR
#define MX_ADC1_DMA_SyncRequestNumber           1
#define MX_ADC1_DMA_Request                     DMA_REQUEST_ADC1
#define MX_ADC1_DMA_SyncPolarity                HAL_DMAMUX_SYNC_NO_EVENT
#define MX_ADC1_DMA_Direction                   DMA_PERIPH_TO_MEMORY
#define MX_ADC1_DMA_SignalID                    NONE
#define MX_ADC1_DMA_MemInc                      DMA_MINC_ENABLE
#define MX_ADC1_DMA_IpInstance
#define MX_ADC1_DMA_RequestNumber               1
#define MX_ADC1_DMA_EventEnable                 DISABLE
#define MX_ADC1_DMA_SyncEnable                  DISABLE
#define MX_ADC1_DMA_DMA_Handle
#define MX_ADC1_DMA_PeriphDataAlignment         DMA_PDATAALIGN_WORD
#define MX_ADC1_DMA_Polarity                    HAL_DMAMUX_REQ_GEN_RISING
#define MX_ADC1_DMA_SyncSignalID                NONE
#define MX_ADC1_DMA_PeriphInc                   DMA_PINC_DISABLE

/*-------------------------------- DMA        --------------------------------*/

#define MX_DMA                                  1

/* NVIC Configuration */

/* NVIC DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX1_OVR_IRQn */
#define MX_DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX1_OVR_IRQn_interruptPremptionPriority 0
#define MX_DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX1_OVR_IRQn_Subriority 0

/* NVIC DMA1_Channel1_IRQn */
#define MX_DMA1_Channel1_IRQn_interruptPremptionPriority 0
#define MX_DMA1_Channel1_IRQn_Subriority        0

/* NVIC DMA1_Channel2_3_IRQn */
#define MX_DMA1_Channel2_3_IRQn_interruptPremptionPriority 0
#define MX_DMA1_Channel2_3_IRQn_Subriority      0

/*-------------------------------- I2C1       --------------------------------*/

#define MX_I2C1                                 1

/* GPIO Configuration */

/* Pin PB8 */
#define MX_I2C1_SCL_GPIO_Speed                  GPIO_SPEED_FREQ_LOW
#define MX_I2C1_SCL_Pin                         PB8
#define MX_I2C1_SCL_GPIOx                       GPIOB
#define MX_I2C_MULTI_MASTER__SCL                I2C1_SCL
#define MX_I2C1_SCL_GPIO_Pin                    GPIO_PIN_8
#define MX_I2C1_SCL_GPIO_AF                     GPIO_AF6_I2C1
#define MX_I2C1_SCL_GPIO_Pu                     GPIO_PULLUP
#define MX_I2C1_SCL_GPIO_Mode                   GPIO_MODE_AF_OD

/* Pin PB9 */
#define MX_I2C1_SDA_GPIO_Speed                  GPIO_SPEED_FREQ_LOW
#define MX_I2C1_SDA_Pin                         PB9
#define MX_I2C1_SDA_GPIOx                       GPIOB
#define MX_I2C_MULTI_MASTER_SDA                 I2C1_SDA
#define MX_I2C1_SDA_GPIO_Pin                    GPIO_PIN_9
#define MX_I2C1_SDA_GPIO_AF                     GPIO_AF6_I2C1
#define MX_I2C1_SDA_GPIO_Pu                     GPIO_PULLUP
#define MX_I2C1_SDA_GPIO_Mode                   GPIO_MODE_AF_OD

/*-------------------------------- IWDG       --------------------------------*/

#define MX_IWDG                                 1

/* GPIO Configuration */

/*-------------------------------- RTC        --------------------------------*/

#define MX_RTC                                  1

/* GPIO Configuration */

/*-------------------------------- SPI1       --------------------------------*/

#define MX_SPI1                                 1

/* GPIO Configuration */

/* Pin PA15 */
#define MX_SPI1_NSS_GPIO_Speed                  GPIO_SPEED_FREQ_LOW
#define MX_SPI1_NSS_Pin                         PA15
#define MX_SPI1_NSS_GPIOx                       GPIOA
#define MX_SPI1_NSS_PinState                    GPIO_PIN_RESET
#define MX_SPI1_NSS_GPIO_PuPd                   GPIO_NOPULL
#define MX_SPI_EXT_FLASH_NSS                    SPI1_NSS
#define MX_SPI1_NSS_GPIO_Pin                    GPIO_PIN_15
#define MX_SPI1_NSS_GPIO_AF                     GPIO_AF0_SPI1
#define MX_SPI1_NSS_GPIO_Mode                   GPIO_MODE_AF_PP

/* Pin PB4 */
#define MX_SPI1_MISO_GPIO_Speed                 GPIO_SPEED_FREQ_LOW
#define MX_SPI1_MISO_Pin                        PB4
#define MX_SPI1_MISO_GPIOx                      GPIOB
#define MX_SPI1_MISO_PinState                   GPIO_PIN_RESET
#define MX_SPI1_MISO_GPIO_PuPd                  GPIO_NOPULL
#define MX_SPI_EXT_FLASH_MISO                   SPI1_MISO
#define MX_SPI1_MISO_GPIO_Pin                   GPIO_PIN_4
#define MX_SPI1_MISO_GPIO_AF                    GPIO_AF0_SPI1
#define MX_SPI1_MISO_GPIO_Mode                  GPIO_MODE_AF_PP

/* Pin PB5 */
#define MX_SPI1_MOSI_GPIO_Speed                 GPIO_SPEED_FREQ_LOW
#define MX_SPI1_MOSI_Pin                        PB5
#define MX_SPI1_MOSI_GPIOx                      GPIOB
#define MX_SPI1_MOSI_PinState                   GPIO_PIN_RESET
#define MX_SPI1_MOSI_GPIO_PuPd                  GPIO_NOPULL
#define MX_SPI_EXT_FLASH_MOSI                   SPI1_MOSI
#define MX_SPI1_MOSI_GPIO_Pin                   GPIO_PIN_5
#define MX_SPI1_MOSI_GPIO_AF                    GPIO_AF0_SPI1
#define MX_SPI1_MOSI_GPIO_Mode                  GPIO_MODE_AF_PP

/* Pin PB3 */
#define MX_SPI1_SCK_GPIO_Speed                  GPIO_SPEED_FREQ_LOW
#define MX_SPI1_SCK_Pin                         PB3
#define MX_SPI1_SCK_GPIOx                       GPIOB
#define MX_SPI1_SCK_PinState                    GPIO_PIN_RESET
#define MX_SPI1_SCK_GPIO_PuPd                   GPIO_NOPULL
#define MX_SPI_EXT_FLASH_SCK                    SPI1_SCK
#define MX_SPI1_SCK_GPIO_Pin                    GPIO_PIN_3
#define MX_SPI1_SCK_GPIO_AF                     GPIO_AF0_SPI1
#define MX_SPI1_SCK_GPIO_Mode                   GPIO_MODE_AF_PP

/* DMA Configuration */

/* DMA SPI1_RX */
#define MX_SPI1_RX_DMA_Instance                 DMA1_Channel4
#define MX_SPI1_RX_DMA_Priority                 DMA_PRIORITY_LOW
#define MX_SPI1_RX_DMA_MemDataAlignment         DMA_MDATAALIGN_BYTE
#define MX_SPI1_RX_DMA_Mode                     DMA_NORMAL
#define MX_SPI1_RX_DMA_SyncRequestNumber        1
#define MX_SPI1_RX_DMA_Request                  DMA_REQUEST_SPI1_RX
#define MX_SPI1_RX_DMA_SyncPolarity             HAL_DMAMUX_SYNC_NO_EVENT
#define MX_SPI1_RX_DMA_Direction                DMA_PERIPH_TO_MEMORY
#define MX_SPI1_RX_DMA_SignalID                 NONE
#define MX_SPI1_RX_DMA_MemInc                   DMA_MINC_ENABLE
#define MX_SPI1_RX_DMA_IpInstance
#define MX_SPI1_RX_DMA_RequestNumber            1
#define MX_SPI1_RX_DMA_EventEnable              DISABLE
#define MX_SPI1_RX_DMA_SyncEnable               DISABLE
#define MX_SPI1_RX_DMA_DMA_Handle
#define MX_SPI1_RX_DMA_PeriphDataAlignment      DMA_PDATAALIGN_BYTE
#define MX_SPI1_RX_DMA_Polarity                 HAL_DMAMUX_REQ_GEN_RISING
#define MX_SPI1_RX_DMA_SyncSignalID             NONE
#define MX_SPI1_RX_DMA_PeriphInc                DMA_PINC_DISABLE

/* DMA SPI1_TX */
#define MX_SPI1_TX_DMA_Instance                 DMA1_Channel5
#define MX_SPI1_TX_DMA_Priority                 DMA_PRIORITY_LOW
#define MX_SPI1_TX_DMA_MemDataAlignment         DMA_MDATAALIGN_BYTE
#define MX_SPI1_TX_DMA_Mode                     DMA_NORMAL
#define MX_SPI1_TX_DMA_SyncRequestNumber        1
#define MX_SPI1_TX_DMA_Request                  DMA_REQUEST_SPI1_TX
#define MX_SPI1_TX_DMA_SyncPolarity             HAL_DMAMUX_SYNC_NO_EVENT
#define MX_SPI1_TX_DMA_Direction                DMA_MEMORY_TO_PERIPH
#define MX_SPI1_TX_DMA_SignalID                 NONE
#define MX_SPI1_TX_DMA_MemInc                   DMA_MINC_ENABLE
#define MX_SPI1_TX_DMA_IpInstance
#define MX_SPI1_TX_DMA_RequestNumber            1
#define MX_SPI1_TX_DMA_EventEnable              DISABLE
#define MX_SPI1_TX_DMA_SyncEnable               DISABLE
#define MX_SPI1_TX_DMA_DMA_Handle
#define MX_SPI1_TX_DMA_PeriphDataAlignment      DMA_PDATAALIGN_BYTE
#define MX_SPI1_TX_DMA_Polarity                 HAL_DMAMUX_REQ_GEN_RISING
#define MX_SPI1_TX_DMA_SyncSignalID             NONE
#define MX_SPI1_TX_DMA_PeriphInc                DMA_PINC_DISABLE

/*-------------------------------- SYS        --------------------------------*/

#define MX_SYS                                  1

/* GPIO Configuration */

/* Pin PA13 */
#define MX_SYS_SWDIO_Pin                        PA13

/* Pin PA14-BOOT0 */
#define MX_SYS_SWCLK_Pin                        PA14_BOOT0

/*-------------------------------- TIM1       --------------------------------*/

#define MX_TIM1                                 1

/* GPIO Configuration */

/* Pin PA8 */
#define MX_S_TIM1_CH1_GPIO_ModeDefaultPP        GPIO_MODE_AF_PP
#define MX_S_TIM1_CH1_GPIO_Speed                GPIO_SPEED_FREQ_LOW
#define MX_S_TIM1_CH1_Pin                       PA8
#define MX_S_TIM1_CH1_GPIOx                     GPIOA
#define MX_S_TIM1_CH1_PinState                  GPIO_PIN_RESET
#define MX_S_TIM1_CH1_GPIO_PuPd                 GPIO_NOPULL
#define MX_I2C_MULTI_MASTER_INTR                S_TIM1_CH1
#define MX_S_TIM1_CH1_GPIO_Pin                  GPIO_PIN_8
#define MX_S_TIM1_CH1_GPIO_AF                   GPIO_AF2_TIM1

/* Pin PA11 [PA9] */
#define MX_S_TIM1_CH4_GPIO_ModeDefaultPP        GPIO_MODE_AF_PP
#define MX_S_TIM1_CH4_GPIO_Speed                GPIO_SPEED_FREQ_LOW
#define MX_S_TIM1_CH4_Pin                       PA11_PA9
#define MX_S_TIM1_CH4_GPIOx                     GPIOA
#define MX_S_TIM1_CH4_PinState                  GPIO_PIN_RESET
#define MX_S_TIM1_CH4_GPIO_PuPd                 GPIO_NOPULL
#define MX_DO_LED_FUNC_G2                       S_TIM1_CH4
#define MX_S_TIM1_CH4_GPIO_Pin                  GPIO_PIN_11
#define MX_S_TIM1_CH4_GPIO_AF                   GPIO_AF2_TIM1

/*-------------------------------- TIM2       --------------------------------*/

#define MX_TIM2                                 1

/* GPIO Configuration */

/*-------------------------------- TIM3       --------------------------------*/

#define MX_TIM3                                 1

/* GPIO Configuration */

/* Pin PC7 */
#define MX_S_TIM3_CH2_GPIO_ModeDefaultPP        GPIO_MODE_AF_PP
#define MX_S_TIM3_CH2_GPIO_Speed                GPIO_SPEED_FREQ_LOW
#define MX_S_TIM3_CH2_Pin                       PC7
#define MX_S_TIM3_CH2_GPIOx                     GPIOC
#define MX_S_TIM3_CH2_PinState                  GPIO_PIN_RESET
#define MX_S_TIM3_CH2_GPIO_PuPd                 GPIO_NOPULL
#define MX_TIM_AUTO_BAUD                        S_TIM3_CH2
#define MX_S_TIM3_CH2_GPIO_Pin                  GPIO_PIN_7
#define MX_S_TIM3_CH2_GPIO_AF                   GPIO_AF1_TIM3

/*-------------------------------- TIM15      --------------------------------*/

#define MX_TIM15                                1

/* GPIO Configuration */

/* Pin PB15 */
#define MX_S_TIM15_CH2_GPIO_ModeDefaultPP       GPIO_MODE_AF_PP
#define MX_S_TIM15_CH2_GPIO_Speed               GPIO_SPEED_FREQ_LOW
#define MX_S_TIM15_CH2_Pin                      PB15
#define MX_S_TIM15_CH2_GPIOx                    GPIOB
#define MX_S_TIM15_CH2_PinState                 GPIO_PIN_RESET
#define MX_S_TIM15_CH2_GPIO_PuPd                GPIO_NOPULL
#define MX_DO_LED_FUNC_R                        S_TIM15_CH2
#define MX_S_TIM15_CH2_GPIO_Pin                 GPIO_PIN_15
#define MX_S_TIM15_CH2_GPIO_AF                  GPIO_AF5_TIM15

/*-------------------------------- USART1     --------------------------------*/

#define MX_USART1                               1

#define MX_USART1_VM                            VM_ASYNC

/* GPIO Configuration */

/* Pin PB6 */
#define MX_USART1_TX_GPIO_ModeDefaultPP         GPIO_MODE_AF_PP
#define MX_USART1_TX_GPIO_Speed                 GPIO_SPEED_FREQ_LOW
#define MX_USART1_TX_GPIO_FM6                   __NULL
#define MX_USART1_TX_Pin                        PB6
#define MX_USART1_TX_GPIOx                      GPIOB
#define MX_USART1_TX_GPIO_PuPd                  GPIO_PULLUP
#define MX_USART_DEBUG_TX                       USART1_TX
#define MX_USART1_TX_GPIO_Pin                   GPIO_PIN_6
#define MX_USART1_TX_GPIO_AF                    GPIO_AF0_USART1

/* Pin PB7 */
#define MX_USART1_RX_GPIO_ModeDefaultPP         GPIO_MODE_AF_PP
#define MX_USART1_RX_GPIO_Speed                 GPIO_SPEED_FREQ_LOW
#define MX_USART1_RX_Pin                        PB7
#define MX_USART1_RX_GPIOx                      GPIOB
#define MX_USART1_RX_GPIO_PuPd                  GPIO_PULLUP
#define MX_USART_DEBUG_RX                       USART1_RX
#define MX_USART1_RX_GPIO_Pin                   GPIO_PIN_7
#define MX_USART1_RX_GPIO_AF                    GPIO_AF0_USART1
#define MX_USART1_RX_GPIO_FM7                   __NULL

/* DMA Configuration */

/* DMA USART1_TX */
#define MX_USART1_TX_DMA_Instance               DMA1_Channel3
#define MX_USART1_TX_DMA_Priority               DMA_PRIORITY_LOW
#define MX_USART1_TX_DMA_MemDataAlignment       DMA_MDATAALIGN_BYTE
#define MX_USART1_TX_DMA_Mode                   DMA_NORMAL
#define MX_USART1_TX_DMA_SyncRequestNumber      1
#define MX_USART1_TX_DMA_Request                DMA_REQUEST_USART1_TX
#define MX_USART1_TX_DMA_SyncPolarity           HAL_DMAMUX_SYNC_NO_EVENT
#define MX_USART1_TX_DMA_Direction              DMA_MEMORY_TO_PERIPH
#define MX_USART1_TX_DMA_SignalID               NONE
#define MX_USART1_TX_DMA_MemInc                 DMA_MINC_ENABLE
#define MX_USART1_TX_DMA_IpInstance
#define MX_USART1_TX_DMA_RequestNumber          1
#define MX_USART1_TX_DMA_EventEnable            DISABLE
#define MX_USART1_TX_DMA_SyncEnable             DISABLE
#define MX_USART1_TX_DMA_DMA_Handle
#define MX_USART1_TX_DMA_PeriphDataAlignment    DMA_PDATAALIGN_BYTE
#define MX_USART1_TX_DMA_Polarity               HAL_DMAMUX_REQ_GEN_RISING
#define MX_USART1_TX_DMA_SyncSignalID           NONE
#define MX_USART1_TX_DMA_PeriphInc              DMA_PINC_DISABLE

/* DMA USART1_RX */
#define MX_USART1_RX_DMA_Instance               DMA1_Channel2
#define MX_USART1_RX_DMA_Priority               DMA_PRIORITY_LOW
#define MX_USART1_RX_DMA_MemDataAlignment       DMA_MDATAALIGN_BYTE
#define MX_USART1_RX_DMA_Mode                   DMA_NORMAL
#define MX_USART1_RX_DMA_SyncRequestNumber      1
#define MX_USART1_RX_DMA_Request                DMA_REQUEST_USART1_RX
#define MX_USART1_RX_DMA_SyncPolarity           HAL_DMAMUX_SYNC_NO_EVENT
#define MX_USART1_RX_DMA_Direction              DMA_PERIPH_TO_MEMORY
#define MX_USART1_RX_DMA_SignalID               NONE
#define MX_USART1_RX_DMA_MemInc                 DMA_MINC_ENABLE
#define MX_USART1_RX_DMA_IpInstance
#define MX_USART1_RX_DMA_RequestNumber          1
#define MX_USART1_RX_DMA_EventEnable            DISABLE
#define MX_USART1_RX_DMA_SyncEnable             DISABLE
#define MX_USART1_RX_DMA_DMA_Handle
#define MX_USART1_RX_DMA_PeriphDataAlignment    DMA_PDATAALIGN_BYTE
#define MX_USART1_RX_DMA_Polarity               HAL_DMAMUX_REQ_GEN_RISING
#define MX_USART1_RX_DMA_SyncSignalID           NONE
#define MX_USART1_RX_DMA_PeriphInc              DMA_PINC_DISABLE

/* NVIC Configuration */

/* NVIC USART1_IRQn */
#define MX_USART1_IRQn_interruptPremptionPriority 0
#define MX_USART1_IRQn_Subriority               0

/*-------------------------------- USART2     --------------------------------*/

#define MX_USART2                               1

#define MX_USART2_VM                            VM_ASYNC

/* GPIO Configuration */

/* Pin PA2 */
#define MX_USART2_TX_GPIO_ModeDefaultPP         GPIO_MODE_AF_PP
#define MX_USART2_TX_GPIO_Speed                 GPIO_SPEED_FREQ_LOW
#define MX_USART2_TX_Pin                        PA2
#define MX_USART2_TX_GPIOx                      GPIOA
#define MX_USART2_TX_PinState                   GPIO_PIN_RESET
#define MX_USART2_TX_GPIO_PuPd                  GPIO_NOPULL
#define MX_USART_DOWNLOAD_TX                    USART2_TX
#define MX_USART2_TX_GPIO_Pin                   GPIO_PIN_2
#define MX_USART2_TX_GPIO_AF                    GPIO_AF1_USART2

/* Pin PA3 */
#define MX_USART2_RX_GPIO_ModeDefaultPP         GPIO_MODE_AF_PP
#define MX_USART2_RX_GPIO_Speed                 GPIO_SPEED_FREQ_LOW
#define MX_USART2_RX_Pin                        PA3
#define MX_USART2_RX_GPIOx                      GPIOA
#define MX_USART2_RX_PinState                   GPIO_PIN_RESET
#define MX_USART2_RX_GPIO_PuPd                  GPIO_NOPULL
#define MX_USART_DOWNLOAD_RX                    USART2_RX
#define MX_USART2_RX_GPIO_Pin                   GPIO_PIN_3
#define MX_USART2_RX_GPIO_AF                    GPIO_AF1_USART2

/*-------------------------------- USART3     --------------------------------*/

#define MX_USART3                               1

#define MX_USART3_VM                            VM_ASYNC

/* GPIO Configuration */

/* Pin PB10 */
#define MX_USART3_TX_GPIO_ModeDefaultPP         GPIO_MODE_AF_PP
#define MX_USART3_TX_GPIO_Speed                 GPIO_SPEED_FREQ_LOW
#define MX_USART3_TX_Pin                        PB10
#define MX_USART3_TX_GPIOx                      GPIOB
#define MX_USART3_TX_PinState                   GPIO_PIN_RESET
#define MX_USART3_TX_GPIO_PuPd                  GPIO_NOPULL
#define MX_USART_485_TX                         USART3_TX
#define MX_USART3_TX_GPIO_Pin                   GPIO_PIN_10
#define MX_USART3_TX_GPIO_AF                    GPIO_AF4_USART3

/* Pin PB14 */
#define MX_USART3_RTS_GPIO_Speed                GPIO_SPEED_FREQ_LOW
#define MX_USART3_RTS_Pin                       PB14
#define MX_USART3_RTS_GPIOx                     GPIOB
#define MX_USART3_RTS_PinState                  GPIO_PIN_RESET
#define MX_USART3_RTS_GPIO_PuPd                 GPIO_NOPULL
#define MX_USART_485_RTS                        USART3_RTS
#define MX_USART3_RTS_GPIO_Pin                  GPIO_PIN_14
#define MX_USART3_RTS_GPIO_AF                   GPIO_AF4_USART3
#define MX_USART3_RTS_GPIO_Mode                 GPIO_MODE_AF_PP

/* Pin PB11 */
#define MX_USART3_RX_GPIO_ModeDefaultPP         GPIO_MODE_AF_PP
#define MX_USART3_RX_GPIO_Speed                 GPIO_SPEED_FREQ_LOW
#define MX_USART3_RX_Pin                        PB11
#define MX_USART3_RX_GPIOx                      GPIOB
#define MX_USART3_RX_PinState                   GPIO_PIN_RESET
#define MX_USART3_RX_GPIO_PuPd                  GPIO_NOPULL
#define MX_USART_485_RX                         USART3_RX
#define MX_USART3_RX_GPIO_Pin                   GPIO_PIN_11
#define MX_USART3_RX_GPIO_AF                    GPIO_AF4_USART3

/*-------------------------------- NVIC       --------------------------------*/

#define MX_NVIC                                 1

/*-------------------------------- GPIO       --------------------------------*/

#define MX_GPIO                                 1

/* GPIO Configuration */

/* Pin PB2 */
#define MX_PB2_Pin                              PB2
#define MX_PB2_GPIOx                            GPIOB
#define MX_PB2_GPIO_PuPd                        GPIO_NOPULL
#define MX_I2C_NFC_INT                          PB2
#define MX_PB2_GPIO_Pin                         GPIO_PIN_2
#define MX_PB2_GPIO_ModeDefaultEXTI             GPIO_MODE_IT_RISING

/* Pin PA6 */
#define MX_PA6_Pin                              PA6
#define MX_PA6_GPIOx                            GPIOA
#define MX_PA6_GPIO_PuPd                        GPIO_NOPULL
#define MX_DI_POWER_GOOD                        PA6
#define MX_PA6_GPIO_Pin                         GPIO_PIN_6
#define MX_PA6_GPIO_ModeDefaultEXTI             GPIO_MODE_IT_RISING

/* Pin PA7 */
#define MX_PA7_GPIO_Speed                       GPIO_SPEED_FREQ_LOW
#define MX_PA7_Pin                              PA7
#define MX_PA7_GPIOx                            GPIOA
#define MX_PA7_PinState                         GPIO_PIN_RESET
#define MX_PA7_GPIO_PuPd                        GPIO_NOPULL
#define MX_DO_SUPCAP_TCHRG                      PA7
#define MX_PA7_GPIO_Pin                         GPIO_PIN_7
#define MX_PA7_GPIO_ModeDefaultOutputPP         GPIO_MODE_OUTPUT_PP

/* Pin PA12 [PA10] */
#define MX_PA12_PA10_GPIO_Speed                 GPIO_SPEED_FREQ_LOW
#define MX_PA12_PA10_Pin                        PA12_PA10
#define MX_PA12_PA10_GPIOx                      GPIOA
#define MX_PA12_PA10_PinState                   GPIO_PIN_RESET
#define MX_PA12_PA10_GPIO_PuPd                  GPIO_NOPULL
#define MX_DO_LED_FUNC_G3                       PA12_PA10
#define MX_PA12_PA10_GPIO_Pin                   GPIO_PIN_12
#define MX_PA12_PA10_GPIO_ModeDefaultOutputPP   GPIO_MODE_OUTPUT_PP

/* Pin PC13 */
#define MX_PC13_Pin                             PC13
#define MX_PC13_GPIOx                           GPIOC
#define MX_PC13_GPIO_PuPd                       GPIO_NOPULL
#define MX_DI_KEY_MANNUAL                       PC13
#define MX_PC13_GPIO_Pin                        GPIO_PIN_13
#define MX_PC13_GPIO_Mode                       GPIO_MODE_INPUT

/* Pin PB13 */
#define MX_PB13_GPIO_Speed                      GPIO_SPEED_FREQ_LOW
#define MX_PB13_Pin                             PB13
#define MX_PB13_GPIOx                           GPIOB
#define MX_PB13_PinState                        GPIO_PIN_RESET
#define MX_PB13_GPIO_PuPd                       GPIO_NOPULL
#define MX_DO_485_TERMINAL_EN                   PB13
#define MX_PB13_GPIO_Pin                        GPIO_PIN_13
#define MX_PB13_GPIO_ModeDefaultOutputPP        GPIO_MODE_OUTPUT_PP

/* Pin PA10 */
#define MX_PA10_GPIO_FMPA10                     __NULL
#define MX_PA10_GPIO_Speed                      GPIO_SPEED_FREQ_LOW
#define MX_PA10_Pin                             PA10
#define MX_PA10_GPIOx                           GPIOA
#define MX_PA10_PinState                        GPIO_PIN_RESET
#define MX_PA10_GPIO_PuPd                       GPIO_NOPULL
#define MX_DO_LED_FUNC_G1                       PA10
#define MX_PA10_GPIO_Pin                        GPIO_PIN_10
#define MX_PA10_GPIO_ModeDefaultOutputPP        GPIO_MODE_OUTPUT_PP

/* Pin PB12 */
#define MX_PB12_GPIO_Speed                      GPIO_SPEED_FREQ_LOW
#define MX_PB12_Pin                             PB12
#define MX_PB12_GPIOx                           GPIOB
#define MX_PB12_PinState                        GPIO_PIN_RESET
#define MX_PB12_GPIO_PuPd                       GPIO_NOPULL
#define MX_DO_485_SWTICH                        PB12
#define MX_PB12_GPIO_Pin                        GPIO_PIN_12
#define MX_PB12_GPIO_ModeDefaultOutputPP        GPIO_MODE_OUTPUT_PP

/* Pin PD1 */
#define MX_PD1_GPIO_Speed                       GPIO_SPEED_FREQ_LOW
#define MX_PD1_Pin                              PD1
#define MX_PD1_GPIOx                            GPIOD
#define MX_PD1_PinState                         GPIO_PIN_RESET
#define MX_PD1_GPIO_PuPd                        GPIO_NOPULL
#define MX_DO_FRONTEND_BOOT                     PD1
#define MX_PD1_GPIO_Pin                         GPIO_PIN_1
#define MX_PD1_GPIO_ModeDefaultOutputPP         GPIO_MODE_OUTPUT_PP

/* Pin PD0 */
#define MX_PD0_GPIO_Speed                       GPIO_SPEED_FREQ_LOW
#define MX_PD0_Pin                              PD0
#define MX_PD0_GPIOx                            GPIOD
#define MX_PD0_PinState                         GPIO_PIN_RESET
#define MX_PD0_GPIO_PuPd                        GPIO_NOPULL
#define MX_DO_FRONTEND_RST                      PD0
#define MX_PD0_GPIO_Pin                         GPIO_PIN_0
#define MX_PD0_GPIO_ModeDefaultOutputPP         GPIO_MODE_OUTPUT_PP

/* Pin PB1 */
#define MX_PB1_GPIO_Speed                       GPIO_SPEED_FREQ_LOW
#define MX_PB1_Pin                              PB1
#define MX_PB1_GPIOx                            GPIOB
#define MX_PB1_PinState                         GPIO_PIN_RESET
#define MX_PB1_GPIO_PuPd                        GPIO_NOPULL
#define MX_DO_SUPCAP_FCHRG                      PB1
#define MX_PB1_GPIO_Pin                         GPIO_PIN_1
#define MX_PB1_GPIO_ModeDefaultOutputPP         GPIO_MODE_OUTPUT_PP

/* Pin PD3 */
#define MX_PD3_GPIO_Speed                       GPIO_SPEED_FREQ_LOW
#define MX_PD3_Pin                              PD3
#define MX_PD3_GPIOx                            GPIOD
#define MX_PD3_PinState                         GPIO_PIN_RESET
#define MX_PD3_GPIO_PuPd                        GPIO_NOPULL
#define MX_DO_CONTACT1_SUPPLY_OUTPUT            PD3
#define MX_PD3_GPIO_Pin                         GPIO_PIN_3
#define MX_PD3_GPIO_ModeDefaultOutputPP         GPIO_MODE_OUTPUT_PP

/* Pin PB0 */
#define MX_PB0_GPIO_Speed                       GPIO_SPEED_FREQ_LOW
#define MX_PB0_Pin                              PB0
#define MX_PB0_GPIOx                            GPIOB
#define MX_PB0_PinState                         GPIO_PIN_RESET
#define MX_PB0_GPIO_PuPd                        GPIO_NOPULL
#define MX_DO_SUPCAP_POWER_EN                   PB0
#define MX_PB0_GPIO_Pin                         GPIO_PIN_0
#define MX_PB0_GPIO_ModeDefaultOutputPP         GPIO_MODE_OUTPUT_PP

/* Pin PD2 */
#define MX_PD2_Pin                              PD2
#define MX_PD2_GPIOx                            GPIOD
#define MX_PD2_GPIO_PuPd                        GPIO_NOPULL
#define MX_DI_CONTACT1_INPUT                    PD2
#define MX_PD2_GPIO_Pin                         GPIO_PIN_2
#define MX_PD2_GPIO_Mode                        GPIO_MODE_INPUT

#endif  /* __MX_DEVICE_H */

3. FreeMarker 基本语法

参考如下:
FreeMarker 在线手册

4. 如何去修改模板并生成自己想要的代码??

嘻嘻

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:14:20  更:2022-10-31 12:18:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:42:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码