Use DMA mem2mem with LCD.

This commit is contained in:
imi415 2021-04-22 01:24:01 +08:00
parent 3cbe1fd375
commit f198b3377a
Signed by: imi415
GPG Key ID: 17F01E106F9F5E0A
11 changed files with 230 additions and 55 deletions

View File

@ -169,4 +169,13 @@ add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_QSPI_FLASH.hex"
add_custom_target("${CMAKE_PROJECT_NAME}_QSPI_FLASH_HEX"
DEPENDS "${CMAKE_PROJECT_NAME}_QSPI_FLASH.hex"
)
add_custom_command(OUTPUT "${CMAKE_PROJECT_NAME}_QSPI_FLASH.bin"
COMMAND ${CMAKE_OBJCOPY} "-O" "binary" "${CMAKE_PROJECT_NAME}_QSPI_FLASH.elf" "${CMAKE_PROJECT_NAME}_QSPI_FLASH.bin"
DEPENDS "${CMAKE_PROJECT_NAME}_QSPI_FLASH.elf"
)
add_custom_target("${CMAKE_PROJECT_NAME}_QSPI_FLASH_BIN"
DEPENDS "${CMAKE_PROJECT_NAME}_QSPI_FLASH.bin"
)

View File

@ -62,8 +62,6 @@ void Error_Handler(void);
#define SDMMC_CD_GPIO_Port GPIOC
#define LCD_BL_Pin GPIO_PIN_1
#define LCD_BL_GPIO_Port GPIOB
#define LED2_Pin GPIO_PIN_15
#define LED2_GPIO_Port GPIOA
#define LED1_Pin GPIO_PIN_11
#define LED1_GPIO_Port GPIOC
/* USER CODE BEGIN Private defines */

View File

@ -1,8 +1,14 @@
#ifndef __OTM_LCD_IMPL_H
#define __OTM_LCD_IMPL_H
#include "cmsis_os.h"
#include "otm8009a_lcd.h"
typedef struct {
osSemaphoreId_t dma_semphr;
} _otm_impl_t;
otm_ret_t _otm_impl_write_reg(void *handle, otm_data_t *reg, uint8_t len);
otm_ret_t _otm_impl_write_data(void *handle, otm_data_t *data, uint32_t len);
otm_ret_t _otm_impl_delay(void *handle, uint32_t usec);

View File

@ -74,7 +74,7 @@
/* #define HAL_SPI_MODULE_ENABLED */
/* #define HAL_SWPMI_MODULE_ENABLED */
#define HAL_TIM_MODULE_ENABLED
/* #define HAL_UART_MODULE_ENABLED */
#define HAL_UART_MODULE_ENABLED
/* #define HAL_USART_MODULE_ENABLED */
/* #define HAL_IRDA_MODULE_ENABLED */
/* #define HAL_SMARTCARD_MODULE_ENABLED */

View File

@ -51,6 +51,8 @@ RTC_HandleTypeDef hrtc;
SD_HandleTypeDef hsd2;
UART_HandleTypeDef huart1;
DMA_HandleTypeDef hdma_memtomem_dma1_stream0;
SRAM_HandleTypeDef hsram1;
@ -75,6 +77,7 @@ static void MX_FMC_Init(void);
static void MX_QUADSPI_Init(void);
static void MX_RTC_Init(void);
static void MX_SDMMC2_SD_Init(void);
static void MX_USART1_UART_Init(void);
void StartDefaultTask(void *argument);
/* USER CODE BEGIN PFP */
@ -137,6 +140,7 @@ int main(void)
MX_RTC_Init();
MX_SDMMC2_SD_Init();
MX_FATFS_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
@ -204,15 +208,22 @@ void SystemClock_Config(void)
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {}
/** Configure LSE Drive Capability
*/
HAL_PWR_EnableBkUpAccess();
__HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
/** Macro to configure the PLL clock source
*/
__HAL_RCC_PLL_PLLSOURCE_CONFIG(RCC_PLLSOURCE_HSE);
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI
|RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_HSE
|RCC_OSCILLATORTYPE_LSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.LSEState = RCC_LSE_ON;
RCC_OscInitStruct.HSIState = RCC_HSI_DIV1;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 8;
@ -395,6 +406,54 @@ static void MX_SDMMC2_SD_Init(void)
}
/**
* @brief USART1 Initialization Function
* @param None
* @retval None
*/
static void MX_USART1_UART_Init(void)
{
/* USER CODE BEGIN USART1_Init 0 */
/* USER CODE END USART1_Init 0 */
/* USER CODE BEGIN USART1_Init 1 */
/* USER CODE END USART1_Init 1 */
huart1.Instance = USART1;
huart1.Init.BaudRate = 921600;
huart1.Init.WordLength = UART_WORDLENGTH_8B;
huart1.Init.StopBits = UART_STOPBITS_1;
huart1.Init.Parity = UART_PARITY_NONE;
huart1.Init.Mode = UART_MODE_TX_RX;
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart1) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART1_Init 2 */
/* USER CODE END USART1_Init 2 */
}
/**
* Enable DMA controller clock
* Configure DMA for memory to memory transfers
@ -506,9 +565,6 @@ static void MX_GPIO_Init(void)
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LCD_BL_GPIO_Port, LCD_BL_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
@ -525,13 +581,6 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(LCD_BL_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : LED2_Pin */
GPIO_InitStruct.Pin = LED2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(LED2_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : LED1_Pin */
GPIO_InitStruct.Pin = LED1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

View File

@ -6,6 +6,20 @@
#define LCD_REGISTER_ADDR 0x60000000
#define LCD_DATA_ADDR 0x60020000
static void _otm_dma_transfer_complete(DMA_HandleTypeDef *DmaHandle) {
//osSemaphoreRelease(DmaHandle->);
}
static void _otm_dma_transfer_error(DMA_HandleTypeDef *DmaHandle) {
// osSemaphoreGive
}
void _otm_impl_init(void *handle) {
_otm_impl_t *impl = handle;
impl->dma_semphr = osSemaphoreNew(1, 0, NULL);
}
otm_ret_t _otm_impl_write_reg(void *handle, otm_data_t *reg, uint8_t len) {
*(uint16_t *)LCD_REGISTER_ADDR = *reg;
for(uint8_t i = 1; i < len; i++) {
@ -20,6 +34,8 @@ otm_ret_t _otm_impl_write_data(void *handle, otm_data_t *data, uint32_t len) {
*(uint16_t *)LCD_DATA_ADDR = data[i];
}
//HAL_DMA_RegisterCallback()
return OTM_OK;
}

View File

@ -230,7 +230,7 @@ void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
/** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
@ -365,6 +365,89 @@ void HAL_SD_MspDeInit(SD_HandleTypeDef* hsd)
}
/**
* @brief UART MSP Initialization
* This function configures the hardware resources used in this example
* @param huart: UART handle pointer
* @retval None
*/
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspInit 0 */
/* USER CODE END USART1_MspInit 0 */
/** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1;
PeriphClkInitStruct.PLL2.PLL2M = 8;
PeriphClkInitStruct.PLL2.PLL2N = 150;
PeriphClkInitStruct.PLL2.PLL2P = 2;
PeriphClkInitStruct.PLL2.PLL2Q = 3;
PeriphClkInitStruct.PLL2.PLL2R = 2;
PeriphClkInitStruct.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_0;
PeriphClkInitStruct.PLL2.PLL2VCOSEL = RCC_PLL2VCOMEDIUM;
PeriphClkInitStruct.PLL2.PLL2FRACN = 0;
PeriphClkInitStruct.Usart16ClockSelection = RCC_USART16CLKSOURCE_PLL2;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}
/* Peripheral clock enable */
__HAL_RCC_USART1_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/**USART1 GPIO Configuration
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN USART1_MspInit 1 */
/* USER CODE END USART1_MspInit 1 */
}
}
/**
* @brief UART MSP De-Initialization
* This function freeze the hardware resources used in this example
* @param huart: UART handle pointer
* @retval None
*/
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
{
if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspDeInit 0 */
/* USER CODE END USART1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART1_CLK_DISABLE();
/**USART1 GPIO Configuration
PA9 ------> USART1_TX
PA10 ------> USART1_RX
*/
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10);
/* USER CODE BEGIN USART1_MspDeInit 1 */
/* USER CODE END USART1_MspDeInit 1 */
}
}
static uint32_t FMC_Initialized = 0;
static void HAL_FMC_MspInit(void){

View File

@ -1,4 +1,4 @@
#include "cmsis_os2.h"
#include "cmsis_os.h"
#include "fatfs.h"

View File

@ -1,4 +1,4 @@
#include "cmsis_os2.h"
#include "cmsis_os.h"
#include "main.h"
#include "fatfs.h"
@ -31,6 +31,8 @@ osSemaphoreId_t g_lvgl_semaphore;
lv_disp_buf_t g_disp_buf;
lv_color_t g_disp_buf_array[DISP_BUF_SIZE];
_otm_impl_t g_lcd_impl;
otm_t g_lcd = {
.cb = {
.delay_cb = _otm_impl_delay,
@ -38,7 +40,7 @@ otm_t g_lcd = {
.write_reg_cb = _otm_impl_write_reg,
.backlight_cb = _otm_impl_backlight
},
.user_data = NULL
.user_data = &g_lcd_impl
};
void lvgl_tick_thread(void *parameters);

View File

@ -1,5 +1,5 @@
##########################################################################################################################
# File automatically-generated by tool: [projectgenerator] version: [3.13.0-B3] date: [Sat Apr 17 23:48:08 CST 2021]
# File automatically-generated by tool: [projectgenerator] version: [3.13.0-B3] date: [Thu Apr 22 00:41:45 CST 2021]
##########################################################################################################################
# ------------------------------------------------
@ -205,7 +205,9 @@ Middlewares/Third_Party/FatFs/src/ff.c \
Middlewares/Third_Party/FatFs/src/ff_gen_drv.c \
Middlewares/Third_Party/FatFs/src/option/syscall.c \
Middlewares/Third_Party/FatFs/src/option/cc932.c \
FATFS/Target/fatfs_platform.c
FATFS/Target/fatfs_platform.c \
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c \
Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c
# ASM sources
ASM_SOURCES = \

View File

@ -109,6 +109,7 @@ Mcu.IP0=CORTEX_M7
Mcu.IP1=DEBUG
Mcu.IP10=SDMMC2
Mcu.IP11=SYS
Mcu.IP12=USART1
Mcu.IP2=DMA
Mcu.IP3=FATFS
Mcu.IP4=FMC
@ -117,7 +118,7 @@ Mcu.IP6=NVIC
Mcu.IP7=QUADSPI
Mcu.IP8=RCC
Mcu.IP9=RTC
Mcu.IPNb=12
Mcu.IPNb=13
Mcu.Name=STM32H750VBTx
Mcu.Package=LQFP100
Mcu.Pin0=PE2
@ -142,32 +143,33 @@ Mcu.Pin25=PD14
Mcu.Pin26=PD15
Mcu.Pin27=PC7
Mcu.Pin28=PC9
Mcu.Pin29=PA13 (JTMS/SWDIO)
Mcu.Pin29=PA9
Mcu.Pin3=PC15-OSC32_OUT (OSC32_OUT)
Mcu.Pin30=PA14 (JTCK/SWCLK)
Mcu.Pin31=PA15 (JTDI)
Mcu.Pin32=PC10
Mcu.Pin33=PC11
Mcu.Pin34=PD0
Mcu.Pin35=PD1
Mcu.Pin36=PD4
Mcu.Pin37=PD5
Mcu.Pin38=PD6
Mcu.Pin39=PD7
Mcu.Pin30=PA10
Mcu.Pin31=PA13 (JTMS/SWDIO)
Mcu.Pin32=PA14 (JTCK/SWCLK)
Mcu.Pin33=PC10
Mcu.Pin34=PC11
Mcu.Pin35=PD0
Mcu.Pin36=PD1
Mcu.Pin37=PD4
Mcu.Pin38=PD5
Mcu.Pin39=PD6
Mcu.Pin4=PH0-OSC_IN (PH0)
Mcu.Pin40=PB3 (JTDO/TRACESWO)
Mcu.Pin41=PB4 (NJTRST)
Mcu.Pin42=VP_FATFS_VS_SDIO
Mcu.Pin43=VP_FREERTOS_VS_CMSIS_V2
Mcu.Pin44=VP_RTC_VS_RTC_Activate
Mcu.Pin45=VP_RTC_VS_RTC_Calendar
Mcu.Pin46=VP_SYS_VS_tim6
Mcu.Pin40=PD7
Mcu.Pin41=PB3 (JTDO/TRACESWO)
Mcu.Pin42=PB4 (NJTRST)
Mcu.Pin43=VP_FATFS_VS_SDIO
Mcu.Pin44=VP_FREERTOS_VS_CMSIS_V2
Mcu.Pin45=VP_RTC_VS_RTC_Activate
Mcu.Pin46=VP_RTC_VS_RTC_Calendar
Mcu.Pin47=VP_SYS_VS_tim6
Mcu.Pin5=PH1-OSC_OUT (PH1)
Mcu.Pin6=PA1
Mcu.Pin7=PB1
Mcu.Pin8=PB2
Mcu.Pin9=PE7
Mcu.PinsNb=47
Mcu.PinsNb=48
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32H750VBTx
@ -200,14 +202,14 @@ NVIC.TimeBaseIP=TIM6
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PA1.Mode=Single Bank 1
PA1.Signal=QUADSPI_BK1_IO3
PA10.Mode=Asynchronous
PA10.Signal=USART1_RX
PA13\ (JTMS/SWDIO).Mode=Serial_Wire
PA13\ (JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO
PA14\ (JTCK/SWCLK).Mode=Serial_Wire
PA14\ (JTCK/SWCLK).Signal=DEBUG_JTCK-SWCLK
PA15\ (JTDI).GPIOParameters=GPIO_Label
PA15\ (JTDI).GPIO_Label=LED2
PA15\ (JTDI).Locked=true
PA15\ (JTDI).Signal=GPIO_Output
PA9.Mode=Asynchronous
PA9.Signal=USART1_TX
PB1.GPIOParameters=PinState,GPIO_Label
PB1.GPIO_Label=LCD_BL
PB1.Locked=true
@ -306,7 +308,7 @@ ProjectManager.TargetToolchain=Makefile
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_FMC_Init-FMC-false-HAL-true,5-MX_QUADSPI_Init-QUADSPI-false-HAL-true,6-MX_RTC_Init-RTC-false-HAL-true,7-MX_SDMMC2_SD_Init-SDMMC2-false-HAL-true,8-MX_FATFS_Init-FATFS-false-HAL-false,0-MX_CORTEX_M7_Init-CORTEX_M7-false-HAL-true
RCC.ADCFreq_Value=16125000
RCC.ADCFreq_Value=75000000
RCC.AHB12Freq_Value=84000000
RCC.AHB4Freq_Value=84000000
RCC.APB1Freq_Value=84000000
@ -322,16 +324,19 @@ RCC.D1CPREFreq_Value=168000000
RCC.DFSDMACLkFreq_Value=84000000
RCC.DFSDMFreq_Value=84000000
RCC.DIVM1=8
RCC.DIVM2=8
RCC.DIVN1=336
RCC.DIVN2=150
RCC.DIVP1Freq_Value=168000000
RCC.DIVP2Freq_Value=16125000
RCC.DIVP2Freq_Value=75000000
RCC.DIVP3Freq_Value=16125000
RCC.DIVQ1=4
RCC.DIVQ1Freq_Value=84000000
RCC.DIVQ2Freq_Value=16125000
RCC.DIVQ2=3
RCC.DIVQ2Freq_Value=50000000
RCC.DIVQ3Freq_Value=16125000
RCC.DIVR1Freq_Value=168000000
RCC.DIVR2Freq_Value=16125000
RCC.DIVR2Freq_Value=75000000
RCC.DIVR3Freq_Value=16125000
RCC.EnbaleCSS=true
RCC.FDCANFreq_Value=84000000
@ -345,7 +350,7 @@ RCC.HRTIMFreq_Value=84000000
RCC.HSE_VALUE=8000000
RCC.I2C123Freq_Value=84000000
RCC.I2C4Freq_Value=84000000
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVN1,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EnbaleCSS,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLLSourceVirtual,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
RCC.IPParameters=ADCFreq_Value,AHB12Freq_Value,AHB4Freq_Value,APB1Freq_Value,APB2Freq_Value,APB3Freq_Value,APB4Freq_Value,AXIClockFreq_Value,CECFreq_Value,CKPERFreq_Value,CortexFreq_Value,CpuClockFreq_Value,D1CPREFreq_Value,DFSDMACLkFreq_Value,DFSDMFreq_Value,DIVM1,DIVM2,DIVN1,DIVN2,DIVP1Freq_Value,DIVP2Freq_Value,DIVP3Freq_Value,DIVQ1,DIVQ1Freq_Value,DIVQ2,DIVQ2Freq_Value,DIVQ3Freq_Value,DIVR1Freq_Value,DIVR2Freq_Value,DIVR3Freq_Value,EnbaleCSS,FDCANFreq_Value,FMCCLockSelection,FMCFreq_Value,FamilyName,HCLK3ClockFreq_Value,HCLKFreq_Value,HPRE,HRTIMFreq_Value,HSE_VALUE,I2C123Freq_Value,I2C4Freq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPTIM345Freq_Value,LPUART1Freq_Value,LTDCFreq_Value,MCO1PinFreq_Value,MCO2PinFreq_Value,PLLSourceVirtual,QSPICLockSelection,QSPIFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SAI23Freq_Value,SAI4AFreq_Value,SAI4BFreq_Value,SDMMCFreq_Value,SPDIFRXFreq_Value,SPI123Freq_Value,SPI45Freq_Value,SPI6Freq_Value,SWPMI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,Tim1OutputFreq_Value,Tim2OutputFreq_Value,TraceFreq_Value,USART16CLockSelection,USART16Freq_Value,USART234578Freq_Value,USBFreq_Value,VCO1OutputFreq_Value,VCO2OutputFreq_Value,VCO3OutputFreq_Value,VCOInput1Freq_Value,VCOInput2Freq_Value,VCOInput3Freq_Value
RCC.LPTIM1Freq_Value=84000000
RCC.LPTIM2Freq_Value=84000000
RCC.LPTIM345Freq_Value=84000000
@ -357,7 +362,8 @@ RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.QSPICLockSelection=RCC_QSPICLKSOURCE_CLKP
RCC.QSPIFreq_Value=64000000
RCC.RNGFreq_Value=48000000
RCC.RTCFreq_Value=32000
RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
RCC.RTCFreq_Value=32768
RCC.SAI1Freq_Value=84000000
RCC.SAI23Freq_Value=84000000
RCC.SAI4AFreq_Value=84000000
@ -373,14 +379,15 @@ RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.Tim1OutputFreq_Value=84000000
RCC.Tim2OutputFreq_Value=84000000
RCC.TraceFreq_Value=168000000
RCC.USART16Freq_Value=84000000
RCC.USART16CLockSelection=RCC_USART16CLKSOURCE_PLL2
RCC.USART16Freq_Value=50000000
RCC.USART234578Freq_Value=84000000
RCC.USBFreq_Value=84000000
RCC.VCO1OutputFreq_Value=336000000
RCC.VCO2OutputFreq_Value=32250000
RCC.VCO2OutputFreq_Value=150000000
RCC.VCO3OutputFreq_Value=32250000
RCC.VCOInput1Freq_Value=1000000
RCC.VCOInput2Freq_Value=250000
RCC.VCOInput2Freq_Value=1000000
RCC.VCOInput3Freq_Value=250000
SH.FMC_A16_CLE.0=FMC_A16,A16_1
SH.FMC_A16_CLE.ConfNb=1
@ -420,6 +427,9 @@ SH.FMC_NOE.0=FMC_NOE,Lcd1
SH.FMC_NOE.ConfNb=1
SH.FMC_NWE.0=FMC_NWE,Lcd1
SH.FMC_NWE.ConfNb=1
USART1.BaudRate=921600
USART1.IPParameters=VirtualMode-Asynchronous,BaudRate
USART1.VirtualMode-Asynchronous=VM_ASYNC
VP_FATFS_VS_SDIO.Mode=SDIO
VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO
VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2