从串口输入到 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的主要内容,如果未能解决你的问题,请参考以下文章

Jetson Xavier NX USB-TTL串口使用

串口计时工具Grabserial简介及修改(添加输入功能)

cc2530怎么样同时使用两个串口

如何在Zstack中使用串口

单片机的串口输入总是中断

VC串口通信,从串口中读取串口摄像头图片,接收到的数据转换成JPG图片