树莓派: 串口serial用法

先安装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():终止当前写操作,并丢弃发送缓存中的数据。

 

  • 11
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值