从串口输入到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个数据包 - 你只是不能将这些比特沿着线路填充得更快!)
设备驱动程序会做一些缓冲,所以我不担心关于它。