Python Pyserial 串行缓冲区

标签 python python-2.7 serial-port buffer pyserial

我正在尝试以Python允许我通过串行端口的速度写入和读取。问题是我写得太快了,但它不起作用。我相信问题必须出在串行缓冲区上,并且我可能会过度写入输入缓冲区。我可以增加输入和输出缓冲区吗?它们是否有任何方法、函数或标志可以告诉缓冲区何时已满、空或忙?我正在尝试尽快一遍又一遍地发送这两个命令

ser = serial.Serial(port=2,baudrate=28800, timeout = 1)
#print ser

ser.flushInput()  #flush input buffer, discarding all its contents
ser.flushOutput() #flush output buffer, aborting current output
                  #and discard all that is in buffer    


ON = ":00000008f8"
PGMMEM0 = ":01f0000011FE" #program one memory location

start = timeit.default_timer()

for i in range(10):

   ser.write(ON)

   end = timeit.default_timer() - start
   print end

   ser.write(PGMMEM0)

   end = timeit.default_timer() - start
   print end

最佳答案

是的,您可以使用Serial.outWaiting()方法来检查还有多少数据等待发送。

我不确定 Serial.write() 方法的具体行为,如果它只是在返回之前将数据添加到内部缓冲区。为了需要上述内容,就必须采用这种方式,但另一方面,有 nonblocking()使其成为非阻塞的。有点困惑。

关于Python Pyserial 串行缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27130423/

相关文章:

Python pyvttbl方差分析错误

windows - 与Windows XP/win32串口通信的基本示例

delphi - 如何增加分配给变量的串行数据的数量?

python - 用于运行服务器并继续的 Windows python 脚本

任何方法的 Python 详细信息

.exe 中的 Python 子进程

linux - RS232 控制台通信 - 将波特率设置为 1 MBaud

python - PyCharm 5 导入错误

python - 使用 JSON 对象解析和处理大文件的更有效方法

python - undefined symbol : PyUnicodeUCS2_AsLatin1String