python - 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 时缺少一些东西,但这就是我所能得到的。
解决方案
你找到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)
推荐阅读
- python - 如何在 django ModelForm 中选择输入字段?
- database - 如何用另一个表中的数据填充一行?
- c# - C# 无法从 DbContext 中删除对象
- java - 使用 com.jackson 从 JSON 字符串获取 Java 对象的最佳方法。?
- c++ - 给定一个等长字符串数组
- javascript - 将复选框更改为切换样式按钮
- uwp - UWP 应用升级方法 - 不丢失用户数据
- ios - Xcode 10 GM - 提交到 App Store Connect 时二进制架构无效?
- swift - 非常基本的示例出错 - swift - 尝试显示其视图不在窗口层次结构中
- python-3.x - TensorFlow 函数 RAM 使用率不断上升