最近用到了串口通讯,需要将单片机发上来的数据进行转换,还需要给单片机发一些命令,之前没有用过pySerial这玩意,网上找了一些资料,学习了以下。做个笔记,方便使用。
pyserial模块是python里面的,所以python环境是必不可少的。
使用pyserial大致步骤如下:
import serial
ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1) # 实例化串口号、波特率、等待时间
print ser # 打印串口信息
ser.write("hello") # 打印输出消息到串口
ser.read() # 读取1个字节
ser.read(10) # 读取10个字节
ser.close() # 关闭串口
其他的一些语句:
ser.isOpen() # 判断串口是否打开
关于timeout的参数定义(当程序在串口中读取数据时):
timeout=None # 永远等待,直到有数据传过来(阻塞)
timeout=0 # 不等待,收不到数据直接退出读取(非阻塞)
timeout=x # 设定等待时间(阻塞,x可以为浮点数)
另外,定时发送串口数据就少不了定时器,python自带了time做时间处理。
使用time的大致步骤如下:
import time
time.sleep(x) # 阻塞x秒,支持浮点数