본문 바로가기

SW 개발 공부/STM32

stm32에서 printf() 함수 사용하기

 

사용 방법

 

1) Project에서 설정 변경

Project -> Properties -> MCU Setting -> Runtime Library -> Standard C  선택

* float 형도 printf() 사용하기 위하여 Use float with printf from newlib-nano checkbox 체크

 

 

 

2) 표준 입출력 헤더파일 추가

/* USER CODE BEGIN Includes */
#include <stdio.h>
/* USER CODE END Includes */

 

3) main함수 이전 _write 함수나 __io_putchar 함수 재정의

 

printf() 함수는 _write 함수를 호출하고, _write 함수는 __io_putchar 함수를 호출한다.

따라서 _write 함수나 __io_putchar 함수를 미리 호출해야함.

 

/* USER CODE BEGIN PFP */
int _write(int file, char* p, int len){
	HAL_UART_Transmit(&huart3, p, len, 10);
	return len;
}
/* USER CODE END PFP */

 

/* USER CODE BEGIN PFP */
int __io_putchar(int ch){
	HAL_UART_Transmit(&huart3, &ch, 1, 1000);
    return ch;
}
/* USER CODE END PFP */

 

 

 

 

 

 

참조: https://eteo.tistory.com/87