저는 RS485-USB 어댑터를 사용하여 하드웨어와 통신합니다. 하드웨어의 매개변수는 16진수 데이터 문자열을 전송하여 변경할 수 있습니다. 나는 다음을 설정했다:
sudo chmod o+rw /dev/ttyUSB0
stty -F /dev/ttyUSB0 19200 -parodd
두 개의 터미널이 열려 있습니다. 첫 번째는 다음과 같습니다
cat -v < /dev/ttyUSB0
두 번째는 다음과 같습니다.
echo -e "\x00\x00\x00\x10\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92" < /dev/ttyUSB0
장치는 비슷한 문자열을 다시 보내야 하지만 첫 번째 터미널에서는 아무것도 수신하지 않습니다. 전송된 데이터 문자열은 제조업체에서 올바른 형식인지 확인했습니다. 왜 응답이 없나요?
편집: 더 관련성 있는 정보를 제공하기 위해 터미널 1에서도 시도해 보았 hexdump < /dev/ttyUSB0
으나 소용이 없었습니다. 또한 다음 설정을 각각 켜거나 꺼서 stty
효과가 있는지 확인했습니다.
parenb, ixon, crtscts, cread
현재 실행되는 내용은 stty -a < /dev/ttyUSB0
다음과 같습니다.
speed 19200 baud; rows 0; columns 0; 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; discard = ^O;
min = 1; time = 0;
parenb -parodd -cmspar cs8 hypcl -cstopb cread clocal crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inclr -igncr -icrnl ixon -ixoff -iuclc -ixany
-ixmabel -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 -flusho
-extproc
답변1
당신은 이미 <
혼합되어 있습니다 >
. 당신은
echo -e ... < /dev/ttyUSB0
하지만 그래야만 해
echo -e ... > /dev/ttyUSB0