微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

写入串行端口时缺少字符

如何解决写入串行端口时缺少字符

我正在尝试编写一个 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 举报,一经查实,本站将立刻删除。