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