所有人!
我从串行端口逐包获取数据。
一秒钟几个包裹,如下所示:

275 242 280 263 235 179 234 236 233 195 203 190 202...

250位数。
每次不同的量。
我的主要目的是从这些数据中实时获取图像。
我使用如下python:
ser = serial.Serial('/dev/ttyACM0', 921600, 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()
    *some calculation*

我的第一个问题是:如果包的速率太快(例如每秒1000包),是否有可能漏掉一些包?
或者我必须用管子,比如:
cat /dev/ttyS0 | python3 script.py

我的第二个问题是:我必须用什么语言来避免损失?Matlab足够了吗?或者可能是C++?
我用Linux。

最佳答案

您正在以921600 bps的比特率从串行端口读取数据。称之为每秒100000个字符,或10微秒/字符。250个字符至少需要2.5毫秒才能到达-你可以在2.5毫秒内完成很多工作(顺便说一下,这意味着你不能每秒收到超过400个数据包-你只是不能更快地填充数据包!)
设备驱动程序会做一些缓冲,所以我不会担心。

关于python - 从串口输入到Python3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40655002/

10-13 08:12