USART3 [STM32] USART / UART를 통한 데이터 송수신 - 개발 환경개발 보드 : NUCLEO-F103RB개발 프로그램- STM32 CubeMX : 6.12.0- STM32 CubeIDE : 1.16.01. 서론 USART(Universal Synchronous Asynchronous Receiver Transmitter)는 MCU으로 통신을 하려고 할때 가장 처음 배우는 통신 방법일 것입니다. 그 이유는 대부분의 개발보드에서 USART으로 PC와 통신할 수 있도록 하는 기능을 제공하고 있기 때문이며, 만약 없더라고 하더라도 USB to TTL을 사서 쉽게 해당 기능을 사용할 수 있기 때문입니다. 또한 그 외 다양한 장점이 있지만, 이번에는 STM32으로 USART를 사용해 PC와 통신하는 기능을 사용해보도록 하겠습니다. 2. 프로젝트 생성 STM32 C.. 2025. 4. 6. [STM32] 인터럽트를 이용한 echo UART 통신 1. STM32의 UART 통신의 문제점 STM32의 가장 큰 문제점은 아두이노에 비해 UART를 사용하기 매우 힘들기에 배우기 힘들어 한다고 생각한다. 내가 경험한 바로 크게 2가지 정도 UART를 사용하는데 힘들어하는 점은 다음과 같다. 1.1. 수신하려는 데이터 길이가 고정 많은 사람들이 STM32를 다루기전에 아두이노를 먼저 사용한 경험이 있는 사람이 대부분일 것이다. 아두이노에서는 굳이 데이터의 길이를 알지 않아도 자동적으로 처리해주기에 개발하는데 매우 편리하다. 하지만, STM32의 경우 데이터를 송수신 하는 경우 데이터의 길이를 미리 알아야 송수신이 가능하다. 특히, 데이터의 길이가 가변적인 경우( ex. 명령어를 보내는 경우) 매우 난감하다. 1.2. 인터럽트가 도중 멈추는 경우 .. 2024. 9. 13. [STM32] UART통신에서 printf() 함수 사용 1. printf()를 사용하고자 하는 이유1.1. 코드 길이 축소 UART 통신은 데이터를 송수신 할때 자주 사용하는 통신으로 디버깅이나 현재 로그를 출력하기 위해 자주 사용된다.기본적으로 STM32에서 UART를 이용하여 데이터를 PC에 전송할 때 HAL_UART_Transmit() 함수를 사용하지만, 필요한 인수가 4개(통신할 UART, 전송할 메세지, 메세지 길이, 타임아웃 시간) 이므로 자주 사용하는 함수임에도 사용이 매우 불편하다. 그러므로, C언어를 사용할 때 부터 자주 사용하였던 printf()함수로 대체하여 기본 HAL_UART_Transmit() 함수보다 편하게 사용하고자 한다. // 기존 UART 통신 함수 사용char* Message = "Hello world";HAL_UART_T.. 2024. 9. 11. 이전 1 다음