해결된 질문
작성
·
57
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 자주 묻는 질문에 혹시 답이 있을 수 있어요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
led 제어까지는 잘 동작했는데, uart 통신을 하려고 보니 시리얼 통신 테스트가 출력되지 않아요.
그래서 uart 모듈이 잘못됐나 하고 툴에서 통신을 확인하려고 i를 따라해봤는데도 동작하지 않아요..
디버깅을 하면 여기서 멈추고 계속 실행을 하면
이렇게 바뀝니다ㅜㅜ expression 창을 보면 코드나 보드에 뭔가 이상이 있는 것 같은데 알 수 있는 방법이 있을까요.. 참고로 오실로스코프는 없습니다ㅜ
답변 3
0
안녕하세요.
우선 경험상 하드웨어 문제일 가능성은 1% 미만입니다.
정말 드물게 발생하기는 하지만, 현재 보드가 동작 중이며 디버깅까지 가능한 상태라면 하드웨어 문제일 가능성은 더욱 희박합니다.
아래 AI가 언급한 내용들이 대부분 맞습니다.
먼저, 기본적으로 printf가 콘솔에 출력되는 동작인데, 해당 동작을 대체하도록 코드가 변경된 상황입니다.
이 과정이 올바르게 수행되었는지 먼저 확인해봐야 합니다.
디버거로 printf 함수 내부에 진입했을 때, UART 통신하는 코드로 진입하는지 확인해보세요.
이 부분까지 정상적으로 동작한다면 소스 코드는 문제없이 작동하고 있다고 볼 수 있습니다.
그다음부터는 설정값을 꼼꼼히 점검해야 합니다.
특히 UART 관련 설정, 예를 들어 Baud rate, Stop bit 등의 설정을 정확히 확인하세요.
이 설정은 MCU(마이크로컨트롤러) 핀 설정 과정에서도 적용해야 하지만, 데이터를 송수신하는 프로그램(XShell)에서도 동일하게 설정해야 합니다.
이러한 설정을 모두 정확하게 적용했음에도 문제가 발생한다면, 마지막 단계로 오실로스코프(Oscilloscope)를 사용해 신호를 확인하세요.
요즘 2만 원대의 저렴한 오실로스코프 제품도 있으므로 이를 활용해 전송 신호를 점검해보는 것을 추천합니다.
오실로스코프로도 전압 신호가 전혀 확인되지 않는다면 이는 실제 하드웨어 고장이거나 핀 설정 오류일 가능성이 높습니다.
하지만, 이러한 경우는 실제로 매우 드뭅니다.
제가 10년 넘게 임베디드 개발을 하면서 물리적으로 전송 전압이 전혀 출력되지 않는 경우는 거의 본 적이 없었어요.
일단 조치 진행 후에 다시 문의 남겨주세요 ㅇㅇ/
0
0
안녕하세요, 인프런 AI 인턴입니다. 솔솔님.
UART 통신 문제로 어려움을 겪고 계시는군요. UART 문제는 일반적으로 하드웨어 설정, 소프트웨어 설정, 그리고 툴 설정과 관련이 있을 수 있습니다. 우선, 아래와 같은 해결 방법을 확인해 보시길 권장드립니다.
하드웨어 연결 확인:
보드 설정 점검:
UART 설정 확인:
소프트웨어 환경 점검:
아래 비슷한 문제를 겪으신 분들의 게시물도 참고하면 도움이 될 수 있습니다:
- GPIO 설정과 초기화 문제: 유사한 오류 해결에 도움이 될 만한 다른 경험이 공유된 게시물입니다.
- UART 통신 관련 해결 사례: UART 통신 설정과 관련된 문제를 해결한 사례입니다.
이 외에도, 문제 해결을 위해 오실로스코프 없이 UART 통신을 디버깅하는 방법은 보통 다른 시리얼 터미널을 이용한 교차 검증 방법이 있습니다. 개발용으로 사용하는 PC에 다양한 시리얼 통신 프로그램(Tera Term 등)을 설치하고, 코드로 인코딩된 메시지를 확인할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.