我正在使用 Python 中的脚本通过串行端口以 2Mbps 的速度从 PIC 微控制器收集数据。
PIC 在 2Mbps 下以完美的时序工作,FTDI USB 串行端口在 2Mbps 下也能很好地工作(均通过示波器验证)
我每秒发送消息(大约 15 个字符的大小)大约 100-150 次,并且那里的数字会增加(检查我是否有消息丢失等等)
在我的笔记本电脑上,我将 Xubuntu 作为虚拟机运行,我可以通过 Putty 和我的脚本(python 2.7 和 pySerial)读取串行端口
问题:
- 通过 Putty 打开串行端口时,我看到所有消息(消息中的计数器以 1 递增 1)。完美的!
- 通过 pySerial 打开串行端口时,我看到所有消息,但不是每秒接收 100-150 倍,而是每秒大约 5 次接收它们(消息仍然以 1 递增 1),但它们可能存储在某个缓冲区中,就像我关闭电源时一样PIC,我可以去厨房回来,我仍然收到消息。
这是代码(我省略了大部分代码,但循环是相同的):
ser = serial.Serial('/dev/ttyUSB0', 2000000, timeout=2, xonxoff=False, rtscts=False, dsrdtr=False) #Tried with and without the last 3 parameters, and also at 1Mbps, same happens.
ser.flushInput()
ser.flushOutput()
While True:
data_raw = ser.readline()
print(data_raw)
任何人都知道为什么 pySerial 从串口读取到行尾需要这么长时间?有什么帮助吗?
我想实时拥有这个。
谢谢