4242
4343UART_HandleTypeDef huart1 ;
4444
45+ SDRAM_HandleTypeDef hsdram1 ;
46+
4547/* USER CODE BEGIN PV */
4648
4749/* USER CODE END PV */
@@ -50,6 +52,7 @@ UART_HandleTypeDef huart1;
5052void SystemClock_Config (void );
5153static void MX_GPIO_Init (void );
5254static void MX_USART1_UART_Init (void );
55+ static void MX_FMC_Init (void );
5356/* USER CODE BEGIN PFP */
5457
5558/* USER CODE END PFP */
@@ -88,6 +91,7 @@ int main(void)
8891 /* Initialize all configured peripherals */
8992 MX_GPIO_Init ();
9093 MX_USART1_UART_Init ();
94+ MX_FMC_Init ();
9195 /* USER CODE BEGIN 2 */
9296
9397 /* USER CODE END 2 */
@@ -117,7 +121,7 @@ void SystemClock_Config(void)
117121 HAL_PWREx_ConfigSupply (PWR_LDO_SUPPLY );
118122 /** Configure the main internal regulator output voltage
119123 */
120- __HAL_PWR_VOLTAGESCALING_CONFIG (PWR_REGULATOR_VOLTAGE_SCALE0 );
124+ __HAL_PWR_VOLTAGESCALING_CONFIG (PWR_REGULATOR_VOLTAGE_SCALE1 );
121125
122126 while (!__HAL_PWR_GET_FLAG (PWR_FLAG_VOSRDY )) {}
123127 /** Initializes the RCC Oscillators according to the specified parameters
@@ -127,12 +131,12 @@ void SystemClock_Config(void)
127131 RCC_OscInitStruct .HSEState = RCC_HSE_ON ;
128132 RCC_OscInitStruct .PLL .PLLState = RCC_PLL_ON ;
129133 RCC_OscInitStruct .PLL .PLLSource = RCC_PLLSOURCE_HSE ;
130- RCC_OscInitStruct .PLL .PLLM = 1 ;
131- RCC_OscInitStruct .PLL .PLLN = 80 ;
134+ RCC_OscInitStruct .PLL .PLLM = 3 ;
135+ RCC_OscInitStruct .PLL .PLLN = 200 ;
132136 RCC_OscInitStruct .PLL .PLLP = 2 ;
133137 RCC_OscInitStruct .PLL .PLLQ = 2 ;
134138 RCC_OscInitStruct .PLL .PLLR = 2 ;
135- RCC_OscInitStruct .PLL .PLLRGE = RCC_PLL1VCIRANGE_3 ;
139+ RCC_OscInitStruct .PLL .PLLRGE = RCC_PLL1VCIRANGE_2 ;
136140 RCC_OscInitStruct .PLL .PLLVCOSEL = RCC_PLL1VCOWIDE ;
137141 RCC_OscInitStruct .PLL .PLLFRACN = 0 ;
138142 if (HAL_RCC_OscConfig (& RCC_OscInitStruct ) != HAL_OK )
@@ -152,7 +156,7 @@ void SystemClock_Config(void)
152156 RCC_ClkInitStruct .APB2CLKDivider = RCC_APB2_DIV2 ;
153157 RCC_ClkInitStruct .APB4CLKDivider = RCC_APB4_DIV2 ;
154158
155- if (HAL_RCC_ClockConfig (& RCC_ClkInitStruct , FLASH_LATENCY_4 ) != HAL_OK )
159+ if (HAL_RCC_ClockConfig (& RCC_ClkInitStruct , FLASH_LATENCY_2 ) != HAL_OK )
156160 {
157161 Error_Handler ();
158162 }
@@ -206,6 +210,53 @@ static void MX_USART1_UART_Init(void)
206210
207211}
208212
213+ /* FMC initialization function */
214+ static void MX_FMC_Init (void )
215+ {
216+
217+ /* USER CODE BEGIN FMC_Init 0 */
218+
219+ /* USER CODE END FMC_Init 0 */
220+
221+ FMC_SDRAM_TimingTypeDef SdramTiming = {0 };
222+
223+ /* USER CODE BEGIN FMC_Init 1 */
224+
225+ /* USER CODE END FMC_Init 1 */
226+
227+ /** Perform the SDRAM1 memory initialization sequence
228+ */
229+ hsdram1 .Instance = FMC_SDRAM_DEVICE ;
230+ /* hsdram1.Init */
231+ hsdram1 .Init .SDBank = FMC_SDRAM_BANK1 ;
232+ hsdram1 .Init .ColumnBitsNumber = FMC_SDRAM_COLUMN_BITS_NUM_9 ;
233+ hsdram1 .Init .RowBitsNumber = FMC_SDRAM_ROW_BITS_NUM_12 ;
234+ hsdram1 .Init .MemoryDataWidth = FMC_SDRAM_MEM_BUS_WIDTH_32 ;
235+ hsdram1 .Init .InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4 ;
236+ hsdram1 .Init .CASLatency = FMC_SDRAM_CAS_LATENCY_2 ;
237+ hsdram1 .Init .WriteProtection = FMC_SDRAM_WRITE_PROTECTION_DISABLE ;
238+ hsdram1 .Init .SDClockPeriod = FMC_SDRAM_CLOCK_PERIOD_2 ;
239+ hsdram1 .Init .ReadBurst = FMC_SDRAM_RBURST_DISABLE ;
240+ hsdram1 .Init .ReadPipeDelay = FMC_SDRAM_RPIPE_DELAY_0 ;
241+ /* SdramTiming */
242+ SdramTiming .LoadToActiveDelay = 2 ;
243+ SdramTiming .ExitSelfRefreshDelay = 7 ;
244+ SdramTiming .SelfRefreshTime = 5 ;
245+ SdramTiming .RowCycleDelay = 6 ;
246+ SdramTiming .WriteRecoveryTime = 3 ;
247+ SdramTiming .RPDelay = 2 ;
248+ SdramTiming .RCDDelay = 2 ;
249+
250+ if (HAL_SDRAM_Init (& hsdram1 , & SdramTiming ) != HAL_OK )
251+ {
252+ Error_Handler ( );
253+ }
254+
255+ /* USER CODE BEGIN FMC_Init 2 */
256+
257+ /* USER CODE END FMC_Init 2 */
258+ }
259+
209260/**
210261 * @brief GPIO Initialization Function
211262 * @param None
@@ -216,7 +267,12 @@ static void MX_GPIO_Init(void)
216267 GPIO_InitTypeDef GPIO_InitStruct = {0 };
217268
218269 /* GPIO Ports Clock Enable */
270+ __HAL_RCC_GPIOE_CLK_ENABLE ();
271+ __HAL_RCC_GPIOG_CLK_ENABLE ();
272+ __HAL_RCC_GPIOD_CLK_ENABLE ();
273+ __HAL_RCC_GPIOI_CLK_ENABLE ();
219274 __HAL_RCC_GPIOH_CLK_ENABLE ();
275+ __HAL_RCC_GPIOF_CLK_ENABLE ();
220276 __HAL_RCC_GPIOC_CLK_ENABLE ();
221277 __HAL_RCC_GPIOB_CLK_ENABLE ();
222278
0 commit comments