/dev/ttyS0,该命令将被执行。在抓取反馈时问题出现了。为此,我想使用这个脚本: #!/bin/bash ec-6ren">
gpt4 book ai didi

linux - 在 bash 脚本中读取/dev/ttyS0 时出现奇怪的结果

转载 作者:太空宇宙 更新时间:2023-11-04 12:38:33 25 4
gpt4 key购买 nike

我尝试向硬件发送命令并想获取结果。我确信当我发送如下命令时:echo "read">/dev/ttyS0,该命令将被执行。在抓取反馈时问题出现了。为此,我想使用这个脚本:

#!/bin/bash

echo "READ" > /dev/ttyS0

#stty -F /dev/ttyS0 9600
stty -F /dev/ttyS0 raw
stty -F /dev/ttyS0 -echo

STR="result "

while read -r -s -t 1 -n 1 c && [[ $c != '>' ]]
do
STR+=$c
done < /dev/ttyS0

echo $STR

结果应该是这样的。

Level 0
001,001, 002,002;>

但是当我执行脚本时,有时我会得到正确的结果,但大多数时候我什么也得不到。

最佳答案

我用这个脚本解决了这个问题:

import serial

ser = serial.Serial(
port='/dev/ttyS0',
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)

str=""
c=""
ser.write("terminal off\r\n")
ser.readline();
ser.write("read\r\n")

while (len(str) < 2 or c != ">"):
c = ser.readline()
str += c

ser.close()

print(str)

关于linux - 在 bash 脚本中读取/dev/ttyS0 时出现奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40867085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com