diff --git a/ch32v003fun/ch32v003fun.c b/ch32v003fun/ch32v003fun.c index 9958905e35acdb8f63fd13e92ae3eda060cb753d..3a3939536d221a5e75f7dbb262e74807d4f973ac 100644 --- a/ch32v003fun/ch32v003fun.c +++ b/ch32v003fun/ch32v003fun.c @@ -1420,19 +1420,18 @@ void SystemInit() //#define BASE_CTLR (((FUNCONF_HSITRIM) << 3) | HSEBYP | RCC_CSS) // disable HSI in HSE modes #if defined(FUNCONF_USE_HSI) && FUNCONF_USE_HSI - #if defined(CH32V30x) + #if defined(CH32V30x) || defined(CH32V20x) || defined(CH32V10x) EXTEN->EXTEN_CTR |= EXTEN_PLL_HSI_PRE; #endif #if defined(FUNCONF_USE_PLL) && FUNCONF_USE_PLL - RCC->CFGR0 = RCC_HPRE_DIV1 | RCC_PLLSRC_HSI_Mul2; + RCC->CFGR0 = RCC_HPRE_DIV1 | PLL_MULTIPLICATION; RCC->CTLR = BASE_CTLR | RCC_HSION | RCC_PLLON; // Use HSI, enable PLL. #else RCC->CFGR0 = RCC_HPRE_DIV1; // PLLCLK = HCLK = SYSCLK = APB1 RCC->CTLR = BASE_CTLR | RCC_HSION; // Use HSI, Only. #endif -#endif -#if defined(FUNCONF_USE_HSE) && FUNCONF_USE_HSE +#elif defined(FUNCONF_USE_HSE) && FUNCONF_USE_HSE #if defined(CH32V003) RCC->CTLR = BASE_CTLR | RCC_HSION | RCC_HSEON ; // Keep HSI on while turning on HSE diff --git a/ch32v003fun/ch32v003fun.h b/ch32v003fun/ch32v003fun.h index 202ac998971e8f44d67f72b0b292d65fa9810be3..09099617fe5d97e3b4eb4aaade4befc65c48d1ba 100644 --- a/ch32v003fun/ch32v003fun.h +++ b/ch32v003fun/ch32v003fun.h @@ -12,7 +12,7 @@ #define FUNCONF_USE_HSI 1 // Use HSI Internal Oscillator #define FUNCONF_USE_HSE 0 // Use External Oscillator #define FUNCONF_HSITRIM 0x10 // Use factory calibration on HSI Trim. -#define FUNCONF_SYSTEM_CORE_CLOCK 48000000 // Computed Clock in Hz. +#define FUNCONF_SYSTEM_CORE_CLOCK 48000000 // Computed Clock in Hz. #define FUNCONF_HSE_BYPASS 0 // Use HSE Bypass feature (for oscillator input) #define FUNCONF_USE_CLK_SEC 1 // Use clock security system, enabled by default #define FUNCONF_USE_DEBUGPRINTF 1