페이지

글목록

레이블이 printf인 게시물을 표시합니다. 모든 게시물 표시
레이블이 printf인 게시물을 표시합니다. 모든 게시물 표시

2017년 2월 18일 토요일

[PSOC5] printf/sprintf 함수에서 floating point 값 표시 (컴파일러 버그)

아~ 놔.. 열통 터지네. 이번에는 sprintf 함수에 아무리 float 값을 써도 이상하게 나와서 찾아보니,
이것도 컴파일러 문제일 듯 하네요. 또 라이브러리쪽에 뭘 써 넣어야 하는군요.

다음과 같이 수정하면 printf/sprintf 함수에서 floating point 값을 표시할 수 있습니다.

1. 프로젝트를 클릭하고, 다시 마우스 우클릭한 다음 Build Setting 을 클릭.






2. Linker 의 Use newlib-nano Float Format 을 True 로 고치고, 
command line 의 Custom Flags 에 -u _printf_float 라고 써 넣음.


2016년 8월 16일 화요일

[STM32F4xx] Nucleo 보드 테스트 #12(printf 함수 사용:KEIL)

STM32F4xx에서 uart2 로 printf()함수를 사용하는 방법을 테스트 해보고 정보를 공유합니다.

다음과 같은 코드를 main.c 파일에 추가하면 됩니다.

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 1);
return ch;
}

이 코드를 추가하기 전에 huart2 는 정의를 해야겠죠.
그리고 uart HAL 함수 HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 1); 를 사용해서 폴링으로 1Byte 전송하도록 되어 잇습니다.