상세 컨텐츠

본문 제목

RTOS 맛보기 (4) - 인터럽트로 문자열 출력하기

펌웨어 설계

by Zin9 2023. 1. 26. 21:36

본문

728x90

 

 

RTOS 맛보기 (3) - 인터럽트 발생하기

RTOS 맛보기 (2) - CubeMX 설정하기 RTOS 맛보기 (1) - 인터럽트로 시작하기 우리는 드라이버를 사용할 때 MCU를 사용한다. MCU를 사용하면서 일반적인 인터럽트나 타이머 등을 사용한다. 그런데 2개 이상

zin9.tistory.com

 

맛보기 마지막 시간으로 인터럽트를 통해 문자열을 출력하고,

테라텀으로 보는 시간을 갖는다.

테라텀을 시리얼 모니터로 사용하는 것은 유용한 스킬이니 참고해두자.

 

 

테라텀을 시리얼모니터로 사용하기

 

]먼저 테라텀을 실행한다.

이 때, UART 케이블을 보드와 연결해두자.

 

테라텀을 실행하면 두 개의 선택지가 있다.

두 번째 선택지인 "시리얼"을 선택하고 UART 케이블이 연결된 포트를 선택한다.

 

 

[설정] - [시리얼포트]로 들어가서 CubeMX의 UART 설정에서 골랐던 Baudrate와 똑같이 한다.

 

 

[설정] - [Setup directory...] 로 들어가서 TERATERM.INI 파일을 열어야 한다.

맨 위의 "Open File"을 클릭하면, TERATERM.INI가 실행된다.

 

debug를 검색하면 다음과 같이 나온다.

Debug=on으로 바꿔준다.

이걸로 테라텀 설정은 끝이다.

 

 

 

 

UART 코드 만들기

 

녹색 LED를 토글했던 위치에 코드를 만들어보자.

콜백 함수 안에 코드를 추가했다.

str이라는 배열에 문자열을 넣었으며, UARTstate라는 변수를 통해 통신에 실패할 시 적색 LED가 토글되도록 했다.

LED 제어 코드에선 HAL_Delay를 넣어줘야 LED가 제대로 토글된다.

100[ms] 이상의 값으로 설정하면 거의 잘 되는 것 같다.

 

 

아래는 UART 통신으로 Hello World!!를 출력한 결과이다.

동영상은 없지만, LED가 토글됨과 동시에 통신이 잘 되는 것을 볼 수 있다.

 

 

잘 안 된다면, Baudrate를 확인해야하는데, 코드 상에서도 문제가 없다면

장치 관리자에 들어가서 UART 케이블의 Baudrate를 직접 손보길 바란다.

 

 

다음은 마지막 맛보기 시간이다.

지금까진 인터럽트로 LED와 시리얼 통신을 구현했다.

다음 시간에는 RTOS를 이용해서 똑같은 기능을 구현해보도록 한다.

728x90

관련글 더보기