printf2 [STM32] C++에서 printf() 함수 사용 #ifdef __cplusplusextern "C" {#endifint __io_putchar(int ch){ // UART3에 ch에 있는 문자 1개를 1ms내 전송 if(HAL_UART_Transmit(&huart3, (uint8_t*)&ch, 1 ,1) != HAL_OK) return 0; //출력 실패 시 0 리턴 return ch; //출력 성공 시 출력한 데이터 리턴}#ifdef __cplusplus}#endif 재정의한 __io_putchar() 함수에 extern"C"를 감싸주면 정상적으로 동작 한다. 2024. 9. 12. [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 다음