对于很多嵌入式工程师来说,经常需要使用各种串口来显示数据和测试,有时候需要自动化地测试命令,使用一般的串口工具就难以满足要求,这时使用Python来写串口程序,就更加方便了。因为它可以根据嵌入式系统发送出来的命令,进行不同的情况处理,可以回应不同的命令。另外也可以使用它来过滤没用的数据,比如关注特定的日志,这样就可以少花费时间。

下面就来做一个串口的程序,首先使用pip安装串口模块:

pip install pyserial

安装完成之后,才可以使用串口模块,简单的测试程序如下:

#蔡军生 2020-03-22
#自动化测试
#
#
import serial

#


ser = serial.Serial("com5",9600,timeout=0.5)#winsows系统使用com1口连接串行口
print(ser.name)
print(ser.is_open)

recv = []
while True:
    if ser.in_waiting:
        r = ser.read()
        if r != None:
            recv.append(r)
            print(recv)

            


ser.close()

要理解这个程序,要看懂下面的文档:

serial = serial.Serial(‘COM1’, 115200) 打开COM1并设置波特率为115200,COM1只适用于Windows
serial = serial.Serial(‘/dev/ttyS0’, 115200) 打开/dev/ttyS0并设置波特率为115200, 只适用于Linux
print serial .portstr 能看到第一个串口的标识
serial .write(“hello”) 往串口里面写数据
serial .close() 关闭serial 表示的串口
serial .open() 打开串口
data = serial .read(num) 读num个字符
data = serial .readline() 读一行数据,以/n结束,要是没有/n就一直读,阻塞。
serial .baudrate = 9600 设置波特率
print serial 可查看当前串口的状态信息
serial .isOpen() 当前串口是否已经打开
serial.inWaiting() 判断当前接收的数据
serial.flushInput() 清除输入缓冲区数据
serial.flushOutput() 中止当前输出并清除输出缓冲区数据