我正在使用Python中的一个脚本通过串行端口以2Mbps的速度从PIC微控制器收集数据。
PIC的工作时间为2兆字节,FTDI的usb串行端口的工作时间为2兆字节(都用示波器进行了验证)
即时消息发送消息(大小约为15个字符)约为每秒100-150次,其数量会增加(以检查是否有消息丢失等)
在我的笔记本电脑上,Xubuntu作为虚拟机运行,我可以通过Putty和脚本(python 2.7和pySerial)读取串行端口
问题是:当通过Putty打开串行端口时,我看到所有消息(消息中的计数器递增1乘1)。很 完美!
当通过pySerial打开串行端口时,我看到了所有消息,但不是以每秒100-150x的速度接收,而是以每秒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从串行端口读到行尾要花这么多时间吗?
有什么帮助吗?
我想实时得到这个。
谢谢你