当前位置:   article > 正文

树莓派: 串口serial用法_sudo apt-getinstall serial

sudo apt-getinstall serial

先安装sudo apt-get install python3-serial

一、打开串口

  1. import serial
  2. ser=serial.Serial("/dev/ttyUSB0",9600,timeout=0.5) #使用USB连接串行口
  3. ser=serial.Serial("/dev/ttyAMA0",9600,timeout=0.5) #使用树莓派的GPIO口连接串行口

 

二、打开端口

  1. ser.open () #打开端口
  2. ser.close() #关闭端口

 

三、读取

  1. s = ser.read(10) #从端口读10个字节
  2. 从串行端口读取大小字节。如果设置了超时,它可能会按要求返回更少的字符。在没有超时的情况下,它将阻塞,直到读取请求的字节数为止。
  3. data = ser.readline() #是读一行,以/n结束,要是没有/n就一直读,阻塞。
  4. data = ser.readlines()和ser.xreadlines() #都需要设置超时时间

 

四、写入

ser.write("hello") #向端口些数据

 

五、获得串行口状态

  1. 串行口的属性:
  2. name:设备名字
  3. portstr:已废弃,用name代替
  4. port:读或者写端口
  5. baudrate:波特率
  6. bytesize:字节大小
  7. parity:校验位
  8. stopbits:停止位
  9. timeout:读超时设置
  10. writeTimeout:写超时
  11. xonxoff:软件流控
  12. rtscts:硬件流控
  13. dsrdtr:硬件流控
  14. interCharTimeout:字符间隔超时
  15. 属性的使用方法:
  16. ser=serial.Serial("/dev/ttyAMA0",9600,timeout=0.5)
  17. ser.open()
  18. print(ser.name)
  19. print(ser.port)
  20. print(ser.baudrate) #波特率
  21. print(ser.bytesize) #字节大小
  22. print(ser.parity) #校验位N-无校验,E-偶校验,O-奇校验
  23. print(ser.stopbits) #停止位
  24. print(ser.timeout) #读超时设置
  25. print(ser.writeTimeout) #写超时
  26. print(ser.xonxoff) #软件流控
  27. print(ser.rtscts) #硬件流控
  28. print(ser.dsrdtr) #硬件流控
  29. print(ser.interCharTimeout) #字符间隔超时
  30. ser.close()

六、设置串行口状态

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

七、缓存区清理

  1. flush():等待所有数据写出。
  2. flushInput():丢弃接收缓存中的所有数据
  3. flushOutput():终止当前写操作,并丢弃发送缓存中的数据。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/211169
推荐阅读
相关标签
  

闽ICP备14008679号