본문 바로가기
Embedded/STM32

[STM32] C++에서 printf() 함수 사용

by Gordon_ 2024. 9. 12.
#ifdef __cplusplus
extern "C" {
#endif

int __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"를 감싸주면 정상적으로 동작 한다.