From 84c7a6bb6749e43916d76986cd2a43ce6525010a Mon Sep 17 00:00:00 2001 From: gnssuser Date: Thu, 22 May 2025 10:28:00 +0200 Subject: [PATCH] Sample usage USART2 and USART6 printf to USART2 --- Core/Src/main.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/Core/Src/main.c b/Core/Src/main.c index bc27da1..fc24ed7 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -17,11 +17,13 @@ */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ +#include +#include #include "main.h" /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ - +#include "printf.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -59,6 +61,13 @@ static void MX_USART6_UART_Init(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ +/***************************************************************************//** +* @brief Character send interface for printf function +*//****************************************************************************/ +void uart_putc (void* p, char c) { + Usart2_PutByte(c); +} + /* USER CODE END 0 */ /** @@ -94,16 +103,27 @@ int main(void) MX_USART6_UART_Init(); /* USER CODE BEGIN 2 */ + Usart2_Init(); + Usart6_Init(); + init_printf(NULL, &uart_putc); // connect printf to UART + printf("Hello world. This is a Nucleo UART and printf sample with IRQ and ring buffer.\n"); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ - while (1) - { - /* USER CODE END WHILE */ - - /* USER CODE BEGIN 3 */ - } + while (1) { + static uint32_t Ctr = 0; + + int ch = Usart2_GetByte(); + if (ch != -1) { // new incoming data + Usart6_PutByte(ch); // UART2rx --> UART6tx + printf("%u: %u (0x%02X)\n", Ctr, ch); // print received character code + Ctr++; + } + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } /* USER CODE END 3 */ }