Skip to content

Commit 10736e4

Browse files
authored
Merge pull request stm32duino#251 from fpistm/DiscoL475_Fix_ClockConfig
[Disco-L475VG] Fix SystemClock_Config
2 parents 2de381e + 314eab1 commit 10736e4

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

variants/DISCO_L475VG_IOT/variant.cpp

+24-11
Original file line numberDiff line numberDiff line change
@@ -173,17 +173,17 @@ WEAK void SystemClock_Config(void)
173173
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI;
174174
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
175175
RCC_OscInitStruct.MSICalibrationValue = 0;
176-
RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_11;
176+
RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6;
177177
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
178178
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_MSI;
179-
RCC_OscInitStruct.PLL.PLLM = 6;
179+
RCC_OscInitStruct.PLL.PLLM = 1;
180180
RCC_OscInitStruct.PLL.PLLN = 40;
181181
RCC_OscInitStruct.PLL.PLLP = 7;
182-
RCC_OscInitStruct.PLL.PLLQ = 4;
183-
RCC_OscInitStruct.PLL.PLLR = 4;
182+
RCC_OscInitStruct.PLL.PLLQ = 2;
183+
RCC_OscInitStruct.PLL.PLLR = 2;
184184
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
185185
{
186-
while(1);
186+
Error_Handler();
187187
}
188188

189189
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
@@ -195,29 +195,42 @@ WEAK void SystemClock_Config(void)
195195

196196
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)
197197
{
198-
while(1);
198+
Error_Handler();
199199
}
200200

201-
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2|RCC_PERIPHCLK_UART4
202-
|RCC_PERIPHCLK_I2C1|RCC_PERIPHCLK_I2C2
201+
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1|RCC_PERIPHCLK_USART2
202+
|RCC_PERIPHCLK_USART3|RCC_PERIPHCLK_UART4
203+
|RCC_PERIPHCLK_UART5|RCC_PERIPHCLK_I2C1
204+
|RCC_PERIPHCLK_I2C2|RCC_PERIPHCLK_DFSDM1
203205
|RCC_PERIPHCLK_USB|RCC_PERIPHCLK_ADC;
206+
PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
204207
PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
208+
PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
205209
PeriphClkInit.Uart4ClockSelection = RCC_UART4CLKSOURCE_PCLK1;
210+
PeriphClkInit.Uart5ClockSelection = RCC_UART5CLKSOURCE_PCLK1;
206211
PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1;
207212
PeriphClkInit.I2c2ClockSelection = RCC_I2C2CLKSOURCE_PCLK1;
208213
PeriphClkInit.AdcClockSelection = RCC_ADCCLKSOURCE_SYSCLK;
209-
PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_MSI;
214+
PeriphClkInit.Dfsdm1ClockSelection = RCC_DFSDM1CLKSOURCE_PCLK;
215+
PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLLSAI1;
216+
PeriphClkInit.PLLSAI1.PLLSAI1Source = RCC_PLLSOURCE_MSI;
217+
PeriphClkInit.PLLSAI1.PLLSAI1M = 1;
218+
PeriphClkInit.PLLSAI1.PLLSAI1N = 24;
219+
PeriphClkInit.PLLSAI1.PLLSAI1P = RCC_PLLP_DIV7;
220+
PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2;
221+
PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2;
222+
PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_48M2CLK;
210223

211224
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
212225
{
213-
while(1);
226+
Error_Handler();
214227
}
215228

216229
/**Configure the main internal regulator output voltage
217230
*/
218231
if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)
219232
{
220-
while(1);
233+
Error_Handler();
221234
}
222235

223236
/**Configure the Systick interrupt time

0 commit comments

Comments
 (0)