从串口输入到Python3

问题描述:

大家好! 我通过包从串口获取数据。 几个包的第二,象下面这样:从串口输入到Python3

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

Aproximatelly 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。

您正在从串口读取,比特率为921600bps。称它为每秒100,000个字符,或10μs/个字符。 250个字符至少需要2.5ms才能到达 - 您可以在2.5ms内完成批次。 (顺便说一下,这意味着你不能每秒获得超过400个数据包 - 你只是不能将这些比特沿着线路填充得更快!)

设备驱动程序会做一些缓冲,所以我不担心关于它。