From 0ab937fc60bb0daaaf05e6471e5236c9c502c6aa Mon Sep 17 00:00:00 2001
From: cnlohr <lohr85@gmail.com>
Date: Mon, 12 Feb 2024 04:50:11 -0500
Subject: [PATCH] Fix up a few parameters / clock issues on the ch32v203

---
 ch32v003fun/ch32v003fun.c | 7 +++----
 ch32v003fun/ch32v003fun.h | 2 +-
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/ch32v003fun/ch32v003fun.c b/ch32v003fun/ch32v003fun.c
index 9958905..3a39395 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 202ac99..0909961 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
-- 
GitLab