Skip to content

Commit 43cac0d

Browse files
authored
Update variant_DATABOARD.cpp - add clock config w/ HSE prediv
Signed-off-by: its-kronos <140297693+its-kronos@users.noreply.github.com>
1 parent 0c77dec commit 43cac0d

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

variants/STM32F1xx/F103C8T_F103CB(T-U)/variant_DATABOARD.cpp

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,72 @@ const uint32_t analogInputPin[] = {
6868
17 // A9, PB1
6969
};
7070

71+
72+
// ----------------------------------------------------------------------------
73+
74+
#ifdef __cplusplus
75+
extern "C" {
76+
#endif
77+
78+
/**
79+
* @brief System Clock Configuration
80+
* The system Clock is configured as follow :
81+
* System Clock source = PLL (HSE)
82+
* SYSCLK(Hz) = 72000000
83+
* HCLK(Hz) = 72000000
84+
* AHB Prescaler = 1
85+
* APB1 Prescaler = 2
86+
* APB2 Prescaler = 1
87+
* PLL_Source = HSE
88+
* PLL_Mul = 9
89+
* Flash Latency(WS) = 2
90+
* ADC Prescaler = 6
91+
* USB Prescaler = 1.5
92+
* @param None
93+
* @retval None
94+
*/
95+
WEAK void SystemClock_Config(void)
96+
{
97+
RCC_OscInitTypeDef RCC_OscInitStruct = {};
98+
RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
99+
RCC_PeriphCLKInitTypeDef PeriphClkInit = {};
100+
101+
/* Initializes the CPU, AHB and APB busses clocks */
102+
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
103+
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
104+
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV2;
105+
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
106+
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
107+
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
108+
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
109+
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
110+
Error_Handler();
111+
}
112+
113+
/* Initializes the CPU, AHB and APB busses clocks */
114+
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
115+
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
116+
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
117+
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
118+
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
119+
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
120+
121+
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) {
122+
Error_Handler();
123+
}
124+
125+
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC | RCC_PERIPHCLK_USB;
126+
PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;
127+
PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLL_DIV1_5;
128+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK) {
129+
Error_Handler();
130+
}
131+
}
132+
133+
#ifdef __cplusplus
134+
}
135+
#endif
136+
137+
138+
71139
#endif /* ARDUINO_DATABOARD */

0 commit comments

Comments
 (0)