写入串行端口时缺少字符

问题描述

我正在尝试编写一个 shell 脚本来测试设备的串行端口

在 Ubuntu 上,我写道:

echo "abcdefghijklmnopqrstuvwxyz1234567890" > /dev/ttyUSB0

在目标上,我已经输入了该行:

cat /dev/ser1

目标显示

bcdefghijklmnoprstuvwxyz123456890(缺少 aq7)

这是系统性的,我尝试了不同模型的 2 个目标,结果都是一样的:“a”、“q”和“7”总是缺失。所以我相信问题出在 Ubuntu 方面。

然后,如果我从 Ubuntu 发送:

echo -e "\n\n\n"

然后下一次“a”和“q”回来但不是“7”

另一种方式(目标发送到 Ubuntu)传输是完美的。没有损失。

Ubuntu 端的设置:

stty -F /dev/ttyUSB0 -a

速度 115200 波特;第 0 行;第 0 列;线 = 0;内部= ^ C;退出 = ^; 擦除 = ^?;杀 = ^U; eof = ^ D; eol = ; eol2 = ;开关 =;开始 = ^Q;停止 = ^ S;暂停 = ^ Z; rpnt = ^R; wase = ^W; lnext = ^V;丢弃 = ^O;分钟 = 1;时间 = 0; -parenb -parodd -cmspar 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 -flusho -extproc

在目标方面:

stty -a /ser1

名称:/dev/ser1 类型:串行打开次数:5 +hupcl +cread -clocal -isig -icanon +iexten -echo +echoe -echok +echoke -echonl +echoctl -noflsh -flusho -ignbrk +brkint -ignpar -parmrk -istrip -inlcr -igncr -icrnl +imaxbel +opost +onlcr -isflow -osflow -ihflow -ohflow intr=^C quit=^\ erase=^? kill=^U eof=^D eol=^- eol2=^- swtch=^- start=^Q stop=^S susp=^Z dsusp=^- 重印=^- 丢弃=^-werase=^- lnext=^- min=01 时间=00 fwd=^- 登录=^- pr1=^[ pr2=5B pr3=^- pr4=^- sf1=^- sf2=^-
sf3=^- sf4=^- left=44 right=43 up=41 down=42 ins=40 del=50 rub=^- can=^- home=48 end=59 par=none +inpck bits=8 stopb=1 波特率=115200 行=0,0

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)