|
14 | 14 | #include "pins_arduino.h"
|
15 | 15 |
|
16 | 16 | /**
|
17 |
| - * @brief System Clock Configuration |
18 |
| - * @param None |
19 |
| - * @retval None |
20 |
| - */ |
| 17 | + * @brief System Clock Configuration |
| 18 | + * @param None |
| 19 | + * @retval None |
| 20 | + */ |
21 | 21 | WEAK void SystemClock_Config(void)
|
22 | 22 | {
|
23 |
| - RCC_OscInitTypeDef RCC_OscInitStruct = {}; |
24 |
| - RCC_ClkInitTypeDef RCC_ClkInitStruct = {}; |
| 23 | + LL_FLASH_SetLatency(LL_FLASH_LATENCY_1); |
25 | 24 |
|
26 |
| - /** Initializes the RCC Oscillators according to the specified parameters |
27 |
| - * in the RCC_OscInitTypeDef structure. |
28 |
| - */ |
29 |
| - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSI48; |
30 |
| - RCC_OscInitStruct.HSIState = RCC_HSI_ON; |
31 |
| - RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; |
32 |
| - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; |
33 |
| - RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; |
| 25 | + /* HSI configuration and activation */ |
| 26 | + LL_RCC_HSI_Enable(); |
| 27 | + while (LL_RCC_HSI_IsReady() != 1) |
| 28 | + { |
| 29 | + } |
34 | 30 |
|
35 |
| - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) |
| 31 | + LL_RCC_HSI_SetCalibTrimming(64); |
| 32 | + LL_RCC_SetHSIDiv(LL_RCC_HSI_DIV_1); |
| 33 | + /* Set AHB prescaler*/ |
| 34 | + LL_RCC_SetAHBPrescaler(LL_RCC_HCLK_DIV_1); |
| 35 | + |
| 36 | + /* Sysclk activation on the HSI */ |
| 37 | + LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSI); |
| 38 | + while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSI) |
36 | 39 | {
|
37 |
| - Error_Handler(); |
38 | 40 | }
|
39 | 41 |
|
40 |
| - /** Initializes the CPU, AHB and APB buses clocks |
41 |
| - */ |
42 |
| - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1; |
43 |
| - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; |
44 |
| - RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1; |
45 |
| - RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV1; |
46 |
| - RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV1; |
| 42 | + /* Set APB1 prescaler*/ |
| 43 | + LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1); |
| 44 | + /* Update CMSIS variable (which can be updated also through SystemCoreClockUpdate function) */ |
| 45 | + LL_SetSystemCoreClock(48000000); |
47 | 46 |
|
48 |
| - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) |
| 47 | + /* Update the time base */ |
| 48 | + if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK) |
49 | 49 | {
|
50 | 50 | Error_Handler();
|
51 | 51 | }
|
|
0 commit comments