小言_互联网的博客

用Python来构造串口测试程序

404人阅读  评论(0)

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

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

pip install pyserial

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


  
  1. #蔡军生 2020-03-22
  2. #自动化测试
  3. #
  4. #
  5. import serial
  6. #
  7. ser = serial.Serial( "com5", 9600,timeout= 0.5) #winsows系统使用com1口连接串行口
  8. print(ser.name)
  9. print(ser.is_open)
  10. recv = []
  11. while True:
  12. if ser.in_waiting:
  13. r = ser.read()
  14. if r != None:
  15. recv.append(r)
  16. print(recv)
  17. 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() 中止当前输出并清除输出缓冲区数据

其它的文档可以参考官主的文档:https://pythonhosted.org/pyserial/pyserial_api.html

 


转载:https://blog.csdn.net/caimouse/article/details/105032084
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场