pySerial:刷新与重置输入缓冲区+重置输出缓冲区

Int*_*rer 7 python serial-port flush pyserial

我正在尝试使用pySerial==3.4,并发现相当缺乏的文档serial.Serial.flush()

文件类对象的刷新。在这种情况下,请等待所有数据写入。

来源


问题

  • 什么是“类文件对象”?
  • 正在冲洗什么?
  • 何时使用flush而不是单独重置输入/输出缓冲区?
serial = Serial("COM3")

# Option 1
serial.flush()

# Option 2
serial.reset_input_buffer()
serial.reset_output_buffer()
Run Code Online (Sandbox Code Playgroud)

相关问题

kun*_*nif 5

它看起来像这样:

\n

什么是“类文件对象”?

\n

Python 中的类文件对象到底是什么?

\n
\n

类似文件的对象主要是 StringIO 对象、连接的套接字以及……实际的文件对象。如果一切顺利,urllib.urlopen() 还会返回一个支持必要方法的类似文件的对象。

\n

类文件对象
\n文件对象的同义词。

\n

文件对象
\n向底层资源公开面向文件的 API(具有 read() 或 write() 等方法)的对象。根据创建的方式,文件对象可以协调对真实磁盘文件或其他类型的存储或通信设备(例如标准输入/输出、内存缓冲区、套接字、管道等)的访问。 。文件对象也称为类文件对象或流。

\n

文件对象实际上分为三类:原始二进制文件、缓冲二进制文件和文本文件。它们的接口在io模块中定义。创建文件对象的规范方法是使用 open() 函数。

\n
\n

io \xe2\x80\x94 用于处理流的核心工具

\n
\n

io 模块提供了 Python\xe2\x80\x99 处理各种类型 I/O 的主要工具。I/O 主要分为三种类型:文本 I/O、二进制 I/O 和原始 I/O。这些是通用类别,并且每个类别都可以使用各种后备存储。属于任何这些类别的具体对象称为文件对象。其他常见术语包括流和类文件对象。

\n
\n

正在冲洗什么?

\n

数据保存在输出缓冲区中。

\n

什么时候会使用刷新而不是单独重置输入/输出缓冲区?

\n

有数据已经​​output( write()),关闭前会调用。

\n

flush()与输入缓冲区或 无关reset_input_buffer()

\n

flush()具有与 不同的功能reset_output_buffer()
\nflush()将输出缓冲区中的所有数据发送给对端,同时reset_output_buffer()丢弃输出缓冲区中的数据。

\n
\n

reset_output_buffer()
\n清除输出缓冲区,中止当前输出并丢弃缓冲区中的所有内容。

\n

请注意,对于某些 USB 串行适配器,这可能仅刷新操作系统的缓冲区,而不刷新 USB 部分中可能存在的所有数据。

\n
\n