인프런 커뮤니티 질문&답변

sssss님의 프로필 이미지
sssss

작성한 질문수

STM32 CAN 통신

WinIDT 프로그램 printf 오류

해결된 질문

작성

·

609

·

수정됨

0

해당 설명을 보고 따라가는데, 30 페이지에서 WinIDT 프로그램을 통해 COM 포트와 속도를 설정하여 포트를 Open했습니다. 그런데 보드에 다운받은 코드를 Run하면 Download verified successfully Shutting down... Exit.로 뜨며 WinIDT 프로그램에서는 cnt 관련하여 printf 함수를 통한 출력이 하나도 나오지 않는데 혹시 문제를 어떻게 해결할 수 있을까요?

답변 4

0

sssss님의 프로필 이미지
sssss
질문자

핀 문제였던 것 같습니다! 덕분에 해결했습니다. 답변 감사드립니다.

alex님의 프로필 이미지
alex
지식공유자

축하드립니다.
회로도를 보는 습관을 가지면 개발에 도움이 됩니다~!!

0

sssss님의 프로필 이미지
sssss
질문자

image<보드 연결 사진>

image<실행창 화면>

답변 감사드립니다. RS232 to TTL 모듈이 없어서 NS-USB2UART04 모듈로 대신하여 사용하였는데, 아직도 WinIDT의 화면에서 아무런 메시지도 출력되지 않습니다. 문제를 어떻게 해결할 수 있을까요?

 

alex님의 프로필 이미지
alex
지식공유자

안녕하세요.

우선 (경험에 의하면) UART TXD, RXD 핀이 서로 바뀔 수 있습니다.
TXD, RXD 핀을 서로 바꾸어서 테스트 해보세요.


그리고 NS-USB2UART04 보드의 전원을 확인해 보세요.
1) 통상적으로 USB에 연결되는 보드(NS-USB2UART04)는 USB에서 전원을 공급받습니다.
446RE 보드와 NS-USB2UART04 보드와 전원은 연결하지 말고, 3핀 (TXD, RXD, GND)만 연결해 보세요.
2) NS-USB2UART04보드의 전원이 외부에서 필요하다면, NS-USB2UART04 보드에 3.3V를 말고 5V를 연결해 보세요.
보드의 5V는 4467RE 보드의 CN6_5번핀 or CN7_18번 핀입니다. (회로도 참조)
NS-USB2UART04 보드에 5V로 표기되어 있네요. (5V를 필요한 것인지, 공급한다는 것인지는 확인이 필요합니다)

3) 그리고 WinIDT에서 Com Open 후에 Control 의 라디오 버튼 아무거나 눌러 보세요.
라디오 버튼을 눌러야 메시지가 나옵니다.

이렇게 했는데도 안되면,
NS-USB2UART04 모듈의 문제든지, 446RE 보드의 문제든지
HW 문제라고 생각됩니다. NS-USB2UART04 모듈을 바꾸어서 해 보시길 바랍니다.

정 안되시면 저희 사무실에 한번 들러주세요.
제가 확인해서 디버깅 해 드릴 수 있습니다.
감사합니다.

alex님의 프로필 이미지
alex
지식공유자

NS-USB2UART04 모듈의 전원핀 (5V)는 출력입니다. 이 핀은 446RE 보드와 연결하면 안됩니다. 연결하며 전원 Short가 됩니다. 3핀만(TX, RX, GND) 연결해서 사용하시길 바랍니다.
image

0

sssss님의 프로필 이미지
sssss
질문자

RS232 to TTL 모듈을 혹시 사용을 안하면 안되나요? NUCLEO-F446RE와 PC를 바로 USB를 통해서 전원 인가와 연결을 하였는데, 이 부분에서 문제가 발생한 것일까요?

alex님의 프로필 이미지
alex
지식공유자

아래 그림을 참조하세요
제가 방금전에 똑같은 환경으로 테스트를 하였습니다.
보드에 전원 및 다운로드 : USB cable
디버깅 메시지 출력 : RS232 to TTL 모듈

확인 사항은 다음과 같습니다.
1) 장치관리자를 보면 COM 포트가 2개가 잡힙니다. 1개는 보드내에 있는 COM 포트, 나머지 하나는 RS232 to TTL 모듈.
2) 2개 중에서 RS232 to TTL 모듈의 COM 포트를 사용합니다. 제 PC 기준으로 COM5 (그림참조)
3) RS232 모듈과 보드와의 연결 확인 (2.3 UART 핀맵 확인) : printf 함수는 __io_putchar() 함수를 사용하여 출력하는데, __io_putchar()함수는 uart1을 사용하고, stm32cubeide 에서 uart1의 핀맵을 "2.3 UART 핀맵"과 같이 구성하였습니다.
아래 그림을 확인하시길 바랍니다.
image

0

alex님의 프로필 이미지
alex
지식공유자

보드 연결을 어떻게 하셨는지요?
9페이지 보면 2가지 방법이 있습니다. [그림2-3], [그림2-4]

그리고 아래 사항을 확인해 보세요.

1) WinIDT의 COM Port 확인 (윈도우 - 장치관리자에서 확인)
2) Baudrate : 115200 확인
3) 다운로드 완료 후에, WinIDT의 프로그램에서 Close 버튼 클릭해서 Com Port Close 후에 다시 Open 버튼 클릭해서 Com Port Open 해 보세요. (WinIDT에서 Com Port를 Open 한채로 보드의 전원을 끄고 다시 전원인가하면, WinIDT의 Com Port를 Close 후에 다시 Open 해 주어야 합니다)

확인 부탁드립니다.

sssss님의 프로필 이미지
sssss

작성한 질문수

질문하기