87#if !defined (HSE_VALUE)
88 #define HSE_VALUE (32000000UL)
91#if !defined (MSI_VALUE)
92 #define MSI_VALUE (4000000UL)
95#if !defined (HSI_VALUE)
96 #define HSI_VALUE (16000000UL)
99#if !defined (LSI_VALUE)
100 #define LSI_VALUE (32000UL)
103#if !defined (LSE_VALUE)
104 #define LSE_VALUE (32768UL)
129#if defined(USER_VECT_TAB_ADDRESS)
134#if defined(VECT_TAB_SRAM)
135#define VECT_TAB_BASE_ADDRESS SRAM2_BASE
137#define VECT_TAB_OFFSET 0x00008000U
140#define VECT_TAB_BASE_ADDRESS FLASH_BASE
142#define VECT_TAB_OFFSET 0x00020000U
149#if defined(VECT_TAB_SRAM)
150#define VECT_TAB_BASE_ADDRESS SRAM1_BASE
152#define VECT_TAB_OFFSET 0x00000000U
155#define VECT_TAB_BASE_ADDRESS FLASH_BASE
157#define VECT_TAB_OFFSET 0x00000000U
185 const uint32_t
AHBPrescTable[16UL] = {1UL, 3UL, 5UL, 1UL, 1UL, 6UL, 10UL, 32UL, 2UL, 4UL, 8UL, 16UL, 64UL, 128UL, 256UL, 512UL};
187 const uint32_t
APBPrescTable[8UL] = {0UL, 0UL, 0UL, 0UL, 1UL, 2UL, 3UL, 4UL};
189 const uint32_t
MSIRangeTable[16UL] = {100000UL, 200000UL, 400000UL, 800000UL, 1000000UL, 2000000UL, \
190 4000000UL, 8000000UL, 16000000UL, 24000000UL, 32000000UL, 48000000UL, 0UL, 0UL, 0UL, 0UL};
213#if defined(USER_VECT_TAB_ADDRESS)
215 SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET;
219#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
220 SCB->CPACR |= ((3UL << (10UL*2UL))|(3UL << (11UL*2UL)));
268 uint32_t tmp, msirange, pllvco, pllr, pllsource , pllm;
273 if((RCC->CR & RCC_CR_MSIRGSEL) == 0U)
275 msirange = (RCC->CSR & RCC_CSR_MSISRANGE) >> 8U;
279 msirange = (RCC->CR & RCC_CR_MSIRANGE) >> 4U;
287 switch (RCC->CFGR & RCC_CFGR_SWS)
306 pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
307 pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1UL ;
320 pllvco = (msirange / pllm);
324 pllvco = pllvco * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos);
325 pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1UL);
336#if defined(DUAL_CORE) && defined(CORE_CM0PLUS)
338 tmp =
AHBPrescTable[((RCC->EXTCFGR & RCC_EXTCFGR_C2HPRE) >> RCC_EXTCFGR_C2HPRE_Pos)];
341 tmp =
AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)];
void SystemInit(void)
Setup the microcontroller system.
void SystemCoreClockUpdate(void)
Update SystemCoreClock variable according to Clock Register Values. The SystemCoreClock variable cont...
const uint32_t AHBPrescTable[16UL]
const uint32_t MSIRangeTable[16UL]
const uint32_t APBPrescTable[8UL]
#define HSI_VALUE
Internal High Speed oscillator (HSI) value. This value is used by the RCC HAL module to compute the s...
#define HSE_VALUE
Adjust the value of External High Speed oscillator (HSE) used in your application....