Python 获取串口通信缓存大小

Python 调用串口通信时,一般都是通过 serial 模块先进行实例化:

import serial

ted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)

若想获取电脑端串口输入缓存以及输出缓存大小(bytes),可以通过该实例的 in_waiting (当前输入端缓存字节数) 和 out_waiting (当前输出端缓存字节数) 查看。

若一次性发送大量请求并收到相应的返回信息,尚未进行读取,则可凭此来查看当前电脑端串口接收的缓存大小:

import serial
from threading import Thread

# 串口实例化
ted = serial.Serial(port='/dev/tty.wchusbserial1470', baudrate=115200)

"""
in_waiting:
Return the number of bytes currently in the input buffer

out_waiting:
Return the number of bytes currently in the output buffer.
"""

# 定义发送请求的函数,命令语句是按接收端要求来的
def send(n):
    for i in range(n):
        ted.write("r vbus_voltage\n".encode('ascii'))
        ted.write("r axis0.motor.config.current_lim\n".encode('ascii'))
        ted.write("r axis0.controller.config.vel_limit\n".encode('ascii'))
        ted.write("r axis0.controller.config.control_mode\n".encode('ascii'))
    print(f"{n} times sent...")
# 用线程来控制发送 n 次
thread_send = Thread(target=lambda: send(800))
# 启动线程
thread_send.start()
# 等待线程结束
thread_send.join()
# 打印此时输入端缓存字节数
print(ted.in_waiting)

可以得到如下结果:

800 times sent...
1020

以此得出电脑串口通信接收端缓存为 1020 字节。

你可能感兴趣的:(串口学习,python学习,python资源,串口通信,串口缓存,python,serial,serial,buffer)