diff --git a/Core/Src/main.c b/Core/Src/main.c index bc27da1..6cb5a4f 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) { + Usart6_PutByte(c); +} + /* USER CODE END 0 */ /** @@ -94,16 +103,31 @@ 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 */ + while (1) { + int c; - /* USER CODE BEGIN 3 */ - } + c = Usart2_GetByte(); + if (c != -1) { // new incoming data + Usart6_PutByte(c); // UART2rx --> UART6tx + } + + c = Usart6_GetByte(); + if (c != -1) { // new incoming data + Usart2_PutByte(c); // UART6rx --> UART2tx + } + + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } /* USER CODE END 3 */ }