cat /dev/ttyUSB0이 끝없는 반복을 생성하는 이유는 무엇입니까?

cat /dev/ttyUSB0이 끝없는 반복을 생성하는 이유는 무엇입니까?

cat /dev/ttyUSB0USB 직렬 어댑터를 통해 발생하는 직렬 통신을 모니터링하는 데 이와 유사한 것을 사용하고 싶습니다 .

TX 라인을 사용하여 Linux에서 직렬 장치로 직렬 명령을 성공적으로 보낼 수 있지만 echo "blahblah" | sudo tee /dev/ttyUSB0직렬 장치에서 반환된 출력을 보고 싶습니다. 예상되는 응답은 일반적으로 에코 메시지이지만 때로는 더 긴 메시지일 수도 있습니다.

cat /dev/ttyUSB0별도의 터미널 창에서 열면 를 실행할 때까지 모든 것이 조용합니다 echo "blahblah" | sudo tee /dev/ttyUSB0. 그 시점에서 forevercat을 실행하는 터미널 창에서 "blahblah"('\r\n' 비트로 종료)가 반복됩니다. RX 케이블을 뽑으면 중지되고, 다시 연결해도 다시 시작되지 않습니다.

나는 직렬 장치의 RX 출력에 연결된 직렬 로직 분석기를 사용했기 때문에 이 중복이 인공물이라고 확신합니다.하나의무한 에코 시퀀스 대신 에코 명령.

echo "blahblah" > /dev/ttyUSB0참고로 초기 직렬 데이터 전송을 사용하여 동일한 동작을 얻었습니다.

답변1

나는 이것이 백만년이라는 것을 알고 있지만 오늘 이 문제에 직면했습니다. 기본적으로 "스크린"을 사용하여 직렬 장치에 연결한 다음 분리하면 장치에 다시 에코하여 cat라인 스팸 없이 출력을 다시 가져올 수 있습니다. 화면이 설정을 tty에 전달하고 있지만 프로그래밍 방식으로 이를 수행할 수 있는 방법이 필요합니다. "meuh"를 외쳐보세요. 올바른 방향을 알려주었으니까요. 내 경우에는 "stty"를 사용하여 미리 다음 명령을 실행했습니다.

stty -echo -opost -F /dev/ttyUSB0

' -echo' 스팸 스팸 개행을 중지하고 ' -opost' 제 경우에는 필요하지 않은 단일 개행을 중지합니다. 그런 다음 터미널 창에서 다음 명령을 실행하여 테스트를 진행할 수 있습니다.

# cat /dev/ttyUSB0

그런 다음 다른 터미널 창에서 다음 명령을 실행합니다.

# echo "This is a test - $(date)" > /dev/ttyUSB0

첫 번째 터미널 창에서 예상되는 출력을 받았습니다.

# cat /dev/ttyUSB0 
This is a test - Mon 21 Feb 2022 11:27:40 AEDT

도움이 되었기를 바랍니다!

관련 정보