我使用 RS485 转 USB 适配器来与硬件通信,可以通过发送十六进制数据字符串来更改其参数。我设置:
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