From c2abe79616d7ff4c254b5cb4dace13d0fb6b45e5 Mon Sep 17 00:00:00 2001
From: "Atsushi Morimoto (74th)" <74th.tech@gmail.com>
Date: Sun, 2 Jul 2023 07:28:54 +0900
Subject: [PATCH] fix uart printf baud

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

diff --git a/ch32v003fun/ch32v003fun.c b/ch32v003fun/ch32v003fun.c
index eb0ebc4..12f693b 100644
--- a/ch32v003fun/ch32v003fun.c
+++ b/ch32v003fun/ch32v003fun.c
@@ -1049,7 +1049,7 @@ void SystemInit()
 #endif
 
 #if defined( FUNCONF_USE_UARTPRINTF ) && FUNCONF_USE_UARTPRINTF
-	SetupUART( FUNCONF_UARTPRINTF_BAUD );
+	SetupUART( UART_BRR );
 #endif
 #if defined( FUNCONF_USE_DEBUGPRINTF ) && FUNCONF_USE_DEBUGPRINTF
 	SetupDebugPrintf();
diff --git a/ch32v003fun/ch32v003fun.h b/ch32v003fun/ch32v003fun.h
index dfd5e4e..c9b88cd 100644
--- a/ch32v003fun/ch32v003fun.h
+++ b/ch32v003fun/ch32v003fun.h
@@ -5092,9 +5092,13 @@ void DelaySysTick( uint32_t n );
 int main() __attribute__((used));
 void SystemInit(void);
 
-#define UART_BAUD_RATE 115200
+#ifdef FUNCONF_UART_PRINTF_BAUD
+	#define UART_BAUD_RATE FUNCONF_UART_PRINTF_BAUD
+#else
+	#define UART_BAUD_RATE 115200
+#endif
 #define OVER8DIV 4
-#define INTEGER_DIVIDER (((25 * (APB_CLOCK)) / ((OVER8DIV) * (UART_BAUD_RATE))))
+#define INTEGER_DIVIDER (((25 * (FUNCONF_SYSTEM_CORE_CLOCK)) / ((OVER8DIV) * (UART_BAUD_RATE))))
 #define FRACTIONAL_DIVIDER ((INTEGER_DIVIDER)%100)
 #define UART_BRR ((((INTEGER_DIVIDER) / 100) << 4) | (((((FRACTIONAL_DIVIDER) * ((OVER8DIV)*2)) + 50)/100)&7))
 // Put an output debug UART on Pin D5.
-- 
GitLab