首页 > 解决方案 > PySerial readline() 先返回命令,再返回答案

问题描述

我已经编写了一个设备(Trinket M0 3V)以通过虚拟 COM 端口与 Python 连接。当我在串行监视器中对其进行测试时,它工作得很好,但是当我切换到 PySerial 时,我遇到了问题。具体来说,我执行以下操作:

import serial
ser = serial.Serial(physicalAddress, timeout = 5)
command = 'bogus\r'.encode()
ser.write(command)
response = ser.readline()

我得到的response只是我在它前面的行上写的命令。但是,当我ser.readline()再次执行时,我确实得到了我需要的响应。由于当我尝试在串行监视器上进行通信时一切正常,这表明我在使用 PySerial 时缺少一些东西,但这就是我所能得到的。

标签: pythonpyserial

解决方案


你找到https://www.thecodingforums.com/threads/pyserial-unexpected-local-echo.711453/的信息了吗?
它必须与处理回声的方式相关联,并且该链接提供了查看回声是本地还是远程的步骤,等等……
我没有找到任何关于 PySerial 完成的本地回声的信息!
但是在串行监视器上(哪个?),似乎可以配置它,因此您没有看到它的原因!?(https://community.platformio.org/t/solved-enable-just-local-echo-in-serial-monitor/539


推荐阅读