使用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. 如何去修改模板并生成自己想要的代码??

嘻嘻

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前面已经回答了PWM的产生原理,这里再进行一下简单的总结: PWM通过变脉冲信号的宽度来控制电路输出,其产生的原理是将一个固定频率的周期性波形通过比较器与一个可调节占空比的方波信号进行比较,从而控制输出信号的占空比。具体来说,当周期性波形的电压高于方波信号时,比较器输出高电平;反之,当周期性波形的电压低于方波信号时,比较器输出低电平。 根据控制信号的波形形式,PWM可以分为三种类型: 1. 单极性PWM 单极性PWM的控制信号为正半周期的方波信号,即高电平和低电平的幅值不同。在单极性PWM中,输出信号的电平平均值与占空比成正比关系,当占空比为0时,输出信号为0电平;当占空比为100%时,输出信号为最大电平。 2. 双极性PWM 双极性PWM的控制信号为正负两个半周期的方波信号,即高电平和低电平的幅值相同。在双极性PWM中,输出信号的电平平均值与占空比成正比关系,当占空比为50%时,输出信号为0电平;当占空比为0或100%时,输出信号为最大电平。 3. 多级PWM 多级PWM是将多个PWM信号级联形成的一种PWM形式,可以实现更高精度的电路输出控制。多级PWM的控制信号是一个多位计数器输出的数字信号,通过逐步增加计数器的位数,可以实现更高分辨率的PWM控制。 需要注意的是,不同类型的PWM在实际应用中,适用于不同的场合。例如,单极性PWM适用于直流电机调速、LED调光等领域;双极性PWM适用于音频放大器、电源变换器等领域;多级PWM适用于高精度的电路输出控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值