从串口输入到 Python3
Posted
技术标签:
【中文标题】从串口输入到 Python3【英文标题】:Input from serial port to Python3 【发布时间】:2016-11-17 12:33:18 【问题描述】:大家! 我按包从串口获取数据。 每秒几个包,如下所示:
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。
【问题讨论】:
【参考方案1】:您正在从比特率为 921600 bps 的串行端口读取数据。称之为每秒 100,000 个字符,或 10µs/字符。 250 个字符至少需要 2.5 毫秒才能到达 - 您可以在 2.5 毫秒内完成 lot。 (顺便说一句,这意味着您每秒无法获得超过 400 个数据包 - 您只是无法更快地沿着线路填充数据包!)
设备驱动程序会做一些缓冲,所以我不用担心。
【讨论】:
以上是关于从串口输入到 Python3的主要内容,如果未能解决你的问题,请参考以下文章