我在端口ttyACM0上连接了USB调制解调器。当我打开像Minicom这样的应用程序并尝试发送一些命令时,回显并不总是我输入的内容。例如,如果我输入" A",我得到" @"。如果我输入" T",我会得到" T"。似乎串口正在剥离我的传输中最不重要的位。例如:
A = @
B = B
C = B
D = D
E = D
F = F
......等等。我认为我的串口配置有问题,但我已经尝试了似乎每个组合而没有运气。我可能错过了一些简单的东西,但没有任何明显的东西可以帮助我。知道什么可能是错的吗?我的串口配置如下:
# stty -F /dev/ttyACM0 -a
speed 9600 baud;stty: /dev/ttyACM0
line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^H; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 100; time = 2;
-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
答案 0 :(得分:3)
查看串口设置,最可能的罪魁祸首是-istrip
。根据{{3}},-istrip
将删除返回的字节的高位。
鉴于您有许多其他串口设置,您可能也遇到了驱动程序的奇怪问题。我不知道minicom使用什么设置以及如何设置它们(我通常使用GTKTerm),但我的经验是GTKTerm使用的设置将始终有效并避免输入/输出中的任何奇怪字符。 / p>
GTKTerm使用的设置与以下stty行相同:
stty -F /dev/ttyS0 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
至于发送命令时不返回任何数据,您是否尝试确保在命令结束时发送\r\n
?还有一种可能是您正在使用的串行端口设置之一是翻译CR / NL组合。如果所有端口设置都设置正确,调制解调器应在您执行以下操作时响应:
cat /dev/ttyACM0 &
/bin/echo -n -e "AT\r\n" > /dev/ttyACM0
(调制解调器应回复OK\r\n
)
答案 1 :(得分:0)
尝试使用
sudo screen /dev/ttyS0 9600
看看你是否有同样的行为。