본문 바로가기
ARM/Cortex-M3 실습

온도 센서 float 값 Printf 출력 안됨?

by 새싹군 2023. 3. 30.

이글은 온도센서를 제어하다가 RS-232 통신으로 온도값을 확인하는 중에 출력값이 확인되지 않아 찾아본 내용이다.

 

Cube MX 로 포트를 연결하고 Toolchain / IDE 에 SW4STM32 로 선택하여 코드를 생성하여 온도센서를 제어하였다.

 

cube mx 툴체인 선택 화면

 

문제의 printf 문은 아래와 같다.

Uart_Printf("Time: %4.0d sec \tTemp: %6.3f \r\n", time_cnt, temp_value);

 

그런데 왜 온도가 출력되지 않을까?

 

RS-232로 시간과 온도를 출력, 온도는 비어있다?

 

결론은 코드는 이상이 없다.

원인은 컴파일 프로그램인 SW4STM32에서 float 값을 전송가능하도록 해야하는 것으로 확인!!

 

 

아래와 같이 설정을 변경하고 결과를 확인해보자.

*Eiclipse 기반의 SW4STM32 컴파일러에서 설정

 

Project → Properties 

 

 

설정 화면에서 C/C++ Build → Settings → Tool Settings →  MCU GCC Linker → Miscellaneous 클릭

 

 

Other Options (...) 의 옆 Add... 클릭(녹색 +)

 

Add... 클릭할 것

 

 

"-u_printf_float" 내용 입력하고 OK

 

설정 마친 화면 OK 클릭하고 팝업을 닫는다.

 

 

이제 확인해보자!!

Tera Term 으로 확인해본 결과

잘나온다... 나중에 또 잊어버리겠지 그때를 위해 끄적끄적...

 

좋은 하루^^

'ARM > Cortex-M3 실습' 카테고리의 다른 글

System Workbench sw4stm32 설치하기  (1) 2019.06.19
드라이버 잡기(STM32 STLink)  (0) 2019.06.19

댓글