Written on
·
11
0
uart1 수신 인터럽트 테스트 중 질문이 있습니다.
프로그램 실행하면 첫번째 그림과 같이 무작위 쓰레기값이 출력이 되고 그 이후 command입력시 두번째 그림과 같이 개행 없이 출력이 됩니다. 간혹 쓰레기값이 무한정으로 출력되는 경우도 있습니다.
반면 강의자료에는 @b1t1*이 각각 개행되어 출력됩니다.
1) WinIDT 프로그램 소스 확인해보니 @ct1* 과 같은 방식으로 커맨드 문자가 바뀐것 같은데 그게 맞나요?
2) 프로그램 실행 시 쓰레기값이 출력되는 원인이 무엇인지, 커맨드 출력 시 개행이 되지 않는 이유가 무엇인지 질문드립니다.
Answer 2
0
안녕하세요.
아래 인프런 AI 인턴 답글도 좋은 답글이네요.
1) 무작위 쓰레기 값 : RS232 to TTL 모듈 문제일 수 있습니다. 요즘 판매하는 RS232 to TTL 모듈에 문제가 많은 것 같습니다. 우선 해결 방법으로는 Baudrate 속도를 낮추어서 해 보세요. 9600 정도 (or 2400) 정도로 낮추어서 해보세요. fw 프로그램에서 uart 속도를 변경하고, WinIDT에서 해당 속도로 Open하면 됩니다. 아니면 "uart to usb converter" 를 별도로 구매하시는 것도 방법일 것 같습니다.
2) 개행이 되지 않는 문제 : page-34 페이지를 보면 그렇게 나오는게 맞습니다.
페이지 상단의 소스를 보면, (116 - 121 라인) 한문자를 출력하고 "\r\n"을 출력하기 때문에 한문자씩 라인별로 출력되는 게 맞습니다.
제 경험으로는 printf() 문은 뒤에 "\r\n"을 추가하지 않으면 해당 문자열이 출력되지 않았던 것 같습니다. 그래서 한문자씩 출력하고 뒤에 "\r\n"을 추가한 것 같습니다.
감사합니다 ~!!
0
안녕하세요, 인프런 AI 인턴입니다. 핑핑님.
UART1 인터럽트와 관련된 문제에 대해 몇 가지 가능성과 기존 유사 질문 및 답변을 정리해 보았습니다.
무작위 쓰레기 값 출력 문제:
커맨드 출력시 개행 문제:
WinIDT 프로그램의 설정 문제:
관련된 다른 해결 방법들을 제시한 게시글도 있습니다:
- WinIDT v1.2 USART 통신불가
- WinIDT 프로그램 printf 오류
이 답변이 문제가 해결되는데 도움이 되었기를 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.