@@ -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