UART를 통한 직렬 터미널에 대한 명령 지우기

UART를 통한 직렬 터미널에 대한 명령 지우기

나는 cmd_clr_scr[] = { 27, 91, 50, 74, 27, 91, 72, 0 };을 보내고 있습니다. UART를 통해 화면을 지우고 커서를 직렬 터미널(Putty) 화면의 왼쪽 상단으로 이동합니다.

UART용 드라이버가 두 개 있습니다. 하나는 차단이고 다른 하나는 비차단입니다. 차단한다는 것은 모든 문자가 전송될 때까지 UART ISR이 반환되지 않는다는 것을 의미합니다. 비 차단 드라이버에서는 UART ISR이 첫 번째 바이트를 전송하자마자 반환되고, 다음 바이트는 전송 종료 인터럽트에서 전송되는 식입니다.

문제는 차단 드라이버를 사용하여 cmd_clr_scr을 보내는 것이 예상한 대로 수행되지만 비차단 드라이버를 사용하면 텍스트를 지우지 않고 커서를 화면의 왼쪽 상단으로만 이동한다는 것입니다. 드라이버를 단계별로 살펴보며 두 번 확인했는데 둘 다 동일한 방식으로 작동합니다. 즉, 정확히 동일한 문자를 동일한 순서로 보냅니다.

Clear 명령 문자열을 사용할 때 주의할 사항이 있나요?

이견있는 사람?

답변1

결국 내가 찾은 문자열을 사용하게 됩니다.여기질문에서 언급한 문자열 대신. 또한 드라이버에서 버그를 발견했지만 버그를 찾기 전에도 문제가 해결되었으므로 이는 아마도 문제가 아닐 것입니다.

관련 정보