赞
踩
sudo
apt-get
install
python3-serial
- import serial
- ser=serial.Serial("/dev/ttyUSB0",9600,timeout=0.5) #使用USB连接串行口
- ser=serial.Serial("/dev/ttyAMA0",9600,timeout=0.5) #使用树莓派的GPIO口连接串行口
- ser.open () #打开端口
-
- ser.close() #关闭端口
- s = ser.read(10) #从端口读10个字节
- 从串行端口读取大小字节。如果设置了超时,它可能会按要求返回更少的字符。在没有超时的情况下,它将阻塞,直到读取请求的字节数为止。
-
-
- data = ser.readline() #是读一行,以/n结束,要是没有/n就一直读,阻塞。
-
- data = ser.readlines()和ser.xreadlines() #都需要设置超时时间
ser.write("hello") #向端口些数据
- 串行口的属性:
- name:设备名字
- portstr:已废弃,用name代替
- port:读或者写端口
- baudrate:波特率
- bytesize:字节大小
- parity:校验位
- stopbits:停止位
- timeout:读超时设置
- writeTimeout:写超时
- xonxoff:软件流控
- rtscts:硬件流控
- dsrdtr:硬件流控
- interCharTimeout:字符间隔超时
-
- 属性的使用方法:
- ser=serial.Serial("/dev/ttyAMA0",9600,timeout=0.5)
- ser.open()
-
-
-
- print(ser.name)
- print(ser.port)
- print(ser.baudrate) #波特率
- print(ser.bytesize) #字节大小
- print(ser.parity) #校验位N-无校验,E-偶校验,O-奇校验
- print(ser.stopbits) #停止位
- print(ser.timeout) #读超时设置
- print(ser.writeTimeout) #写超时
- print(ser.xonxoff) #软件流控
- print(ser.rtscts) #硬件流控
- print(ser.dsrdtr) #硬件流控
- print(ser.interCharTimeout) #字符间隔超时
-
- ser.close()

- 需要用的常量
- bytesize:FIVE BITS、SIXBITS、SEVENBITS、EIGHTBITS
- parity: PARITY_NONE, PARITY_EVEN, PARITY_ODD, PARITY_MARK, PARITY_SPACE
- stopbits: STOPBITS_ONE, STOPBITS_ONE_POINT_FIVE, STOPBITS_TWO
- 异常:
- ValueError:参数错误
- SerialException:找不到设备或不能配置
-
- ser.baudrate=9600 #设置波特率
-
- ser.bytesize=8 #字节大小
- ser.bytesize=serial.EiGHTBITS #8位数据位
-
- ser.parity=serial.PARITY_EVEN #偶校验
- ser.parity=serial.PARITY_NONE #无校验
- ser.parity=serial.PARITY_ODD #奇校验
-
- ser.stopbits=1 #停止位
- ser.timeout=0.5 #读超时设置
- ser.writeTimeout=0.5 #写超时
- ser.xonxoff #软件流控
- ser.rtscts #硬件流控
- ser.dsrdtr #硬件流控
- ser.interCharTimeout #字符间隔超时

- flush():等待所有数据写出。
- flushInput():丢弃接收缓存中的所有数据
- flushOutput():终止当前写操作,并丢弃发送缓存中的数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。