stty를 통한 직렬 설정 문제 해결

stty를 통한 직렬 설정 문제 해결

하드웨어

PHYTEC 미라 보드그리고MX6프로세서

운영 체제

PHYTEC에서 제공하는 BSP를 사용하여 생성된 Yocto 이미지원천안에는 가장 작은 가방이 들어있습니다.

이 보드에는 UART 보드가 있습니다.직렬 포트 3운영 체제 내의 소프트웨어 인터페이스는 다음과 같습니다./dev/ttymxc2 하드웨어 매뉴얼. 보드의 직렬 포트를 확인/설정하는 데 사용할 수 있는 유일한 방법은 입니다 stty.

연결하고 싶습니다.Adafruit Ultimate GPS도착하다직렬 포트 3Mira Board의 정보를 읽어보세요.

1번 시도

두 구성요소를 다음과 같이 연결했습니다.

UART3_RXD_RS232 (MIRA) --> TX pin (GPS)
UART3_TXD_RS232 (MIRA) --> RX pin (GPS)

다음과 같이 직렬 포트를 설정합니다.

 stty -F /dev/ttymxc2 speed 9600

읽은 값:

 cat /dev/ttymxc2

결과: 정크 값. 가능한 모든 설정을 시도했지만 여전히 쓰레기 값이 나타납니다. node포트에서 정보를 읽으려고 간단한 스크립트를 작성했지만 문자가 인식되지 않는다는 오류(가비지 값)가 발생했습니다.

2번 시도

처음에는 GPS에서 값을 얻기 위해 간단한 Arduino Nano에 GPS를 연결하려고 시도했는데 작동하여 GPS가 정보를 보내고 있고 결함이 발생하지 않았음을 확인했습니다.

Mira와 Arduino의 직렬 포트를 연결하고 Mira의 정보를 Arduino의 직렬 포트로 전송하여 직렬 콘솔을 통해 읽어 보려고 했습니다.

설정

   MIRA_Board (serial UART3) ---> Arduino Nano (Serial Pins) --USBCable--> Computer

다리

 UART3_RXD_RS232 (MIRA) --> RX PIN NANO
 UART3_TXD_RS232 (MIRA) --> TX PIN NANO

SSH를 통해 Mira 보드에 로그인합니다. Arduino를 통해 컴퓨터의 직렬 콘솔에서 동일한 값을 예상하여 다음 명령을 실행합니다.

 echo 'hello' > /dev/ttymxc2

결과: 콘솔에서는 여전히 쓰레기 값입니다. 퍼티 결과

구성은 /dev/ttymxc2다음과 같습니다

stty -F /dev/ttymxc2 -a                       
speed 9600 baud;stty: /dev/ttymxc2 line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;   -parenb -parodd cs8 hupcl -cstopb cread clocal –crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8  
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0   
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

이 문제가 직렬 구성 불일치로 인해 발생한 경우 를 사용하여 문제를 해결하려면 어떻게 해야 합니까 stty?

폴리스티렌: GPS 전송 속도는 9600다음과 같아야 합니다.

답변1

Mira 보드에서 UART1 또는 UART2를 사용해 볼 수 있습니다. 매뉴얼에 따르면 TTL 레벨 신호를 사용합니다. GPS 모듈은 3V를 출력하지만 입력은 5V에 허용됩니다. +3V는 TTL 입력에서 "1"로 해석되기에 충분합니다. RS-232 신호는 RS-232가 공간 상태에 대해 +3..+12V, -3..-15V(예:줄이다15V) 표시 상태입니다.

관련 정보