使用pyserial从串行端口读取输出。

2024-06-17 12:46:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我对pyserial有问题

先建立联系:

ser = serial.Serial(
device,
baudrate=115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)

如果我按一个键,会出现一个菜单(我看不到这个菜单,但我知道如果我按'1'将获得一个数据转储):

^{pr2}$

在我的代码中按“1”:

cmd = "1"
ser.write(cmd.encode('ascii'))

所以,当我按“1”时,序列结果是一个很长的数字列表,如下所示:

816 81e 81e
828 820 820
816 816 81a
82a 826 824
816 80e 81a
81e 824 820
820 81a 80e
816 80e 81e
82a 81c 824
... and many other

我尝试在60秒后使用以下命令读取输出: (60秒是滚动所有行的时间)

time.sleep(60)
dumpfile.write(str(ser.read_all()))

但在dumpfile中我只有几行。 如何读取串行的总输出?在


Tags: cmdnonedevice菜单serialserwritepyserial
1条回答
网友
1楼 · 发布于 2024-06-17 12:46:24

经过一个漫长的夜晚,我找到了解决办法!!在

while 1:
    serial_line = ser.readline()
    dumpfile.write(str(serial_line))
    print serial_line #for debug
    if len(serial_line) == 0:
      break

相关问题 更多 >