109#if !defined (HSE_VALUE)
110 #define HSE_VALUE 8000000U
113#if !defined (MSI_VALUE)
114 #define MSI_VALUE 4000000U
117#if !defined (HSI_VALUE)
118 #define HSI_VALUE 16000000U
126#define USER_VECT_TAB_ADDRESS
128#if defined(USER_VECT_TAB_ADDRESS)
133#if defined(VECT_TAB_SRAM)
134#define VECT_TAB_BASE_ADDRESS SRAM1_BASE
136#define VECT_TAB_OFFSET 0x00000000U
139#define VECT_TAB_BASE_ADDRESS FLASH_BASE
141#define VECT_TAB_OFFSET 0x00005000U
170 uint32_t SystemCoreClock = 4000000U;
172 const uint8_t AHBPrescTable[16] = {0U, 0U, 0U, 0U, 0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U, 6U, 7U, 8U, 9U};
173 const uint8_t APBPrescTable[8] = {0U, 0U, 0U, 0U, 1U, 2U, 3U, 4U};
174 const uint32_t MSIRangeTable[12] = {100000U, 200000U, 400000U, 800000U, 1000000U, 2000000U, \
175 4000000U, 8000000U, 16000000U, 24000000U, 32000000U, 48000000U};
199#if defined(USER_VECT_TAB_ADDRESS)
205#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
206 SCB->CPACR |= ((3UL << 20U)|(3UL << 22U));
253 uint32_t tmp, msirange, pllvco, pllsource, pllm, pllr;
256 if ((RCC->CR & RCC_CR_MSIRGSEL) == 0U)
258 msirange = (RCC->CSR & RCC_CSR_MSISRANGE) >> 8U;
262 msirange = (RCC->CR & RCC_CR_MSIRANGE) >> 4U;
265 msirange = MSIRangeTable[msirange];
268 switch (RCC->CFGR & RCC_CFGR_SWS)
271 SystemCoreClock = msirange;
286 pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
287 pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> 4U) + 1U ;
300 pllvco = (msirange / pllm);
303 pllvco = pllvco * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 8U);
304 pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> 25U) + 1U) * 2U;
305 SystemCoreClock = pllvco/pllr;
309 SystemCoreClock = msirange;
314 tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4U)];
316 SystemCoreClock >>= tmp;
#define VECT_TAB_BASE_ADDRESS
void SystemInit(void)
Setup the microcontroller system.
void SystemCoreClockUpdate(void)
Update SystemCoreClock variable according to Clock Register Values. The SystemCoreClock variable cont...