我正在使用cat和echo对usb串行设备进行读写。
# shell session 1
echo "send to device" >/dev/ttyUSB0
# shell session 2
cat /dev/ttyUSB0
如果我手动执行此操作,效果会很好。运行脚本时,echo命令通常会丢失字符串的前1-4个字符,设备仅接收其余字符
示例:设备通常会收到"nd to device“
谁能给我个提示这是为什么?
发布于 2021-04-23 21:03:26
严格地说,这绝对不是一个解决方案,但在有更好的解决方案之前,我会延迟并慢慢地逐个字符发送。它是这样工作的。
每个字符的速度超过0.1秒会变得不稳定。
即时通信使用Windows10 WSL1
command=""
command+="command one to deliver$"
command+="command two to deliver$"
command+="command three to deliver$"
command+="command four to deliver$"
local loopindex=$command
for ((i = 0; i < ${#loopindex}; i++)); do
if [[ ${loopindex:$i:1} = "$" ]]; then
echo "debug: newline"
echo "" >/dev/ttyUSB
else
echo "debug: char=${loopindex:$i:1}"
echo -n "${loopindex:$i:1}" >/dev/ttyUSB
fi
sleep 0.1
done
https://stackoverflow.com/questions/67220230
复制相似问题