一、概述
pyserial模块封装了对串口的访问。
二、特性
在支持的平台上有统一的接口。
通过python属性访问串口设置。
支持不同的字节大小、停止位、校验位和流控设置。
可以有或者没有接收超时。 
类似文件的API,例如read和write,也支持readline等。
支持二进制传输,没有null消除,没有cr-lf转换。
三、系统要求
python 2.3及以上版本,包括py3k。

四、使用方法和实例

1、导入pyserial模块

import serial

2、打开串行口

// 打开串口0, 9600,8N1,连接超时0.5秒
import serial

ser=serial.Serial("/dev/ttyUSB0",9600,timeout=0.5) #使用USB连接串行口

ser=serial.Serial("/dev/ttyAMA0",9600,timeout=0.5) #使用树莓派的GPIO口连接串行口
ser=serial.Serial(1,9600,timeout=0.5) #winsows系统使用com1口连接串行口
ser=serial.Serial("com1",9600,timeout=0.5) #winsows系统使用com1口连接串行口
ser=serial.Serial("/dev/ttyS1",9600,timeout=0.5) #Linux系统使用com1口连接串行口
print ser.name #打印设备名称
print ser.port #打印设备名
ser.open () #打开端口
s = ser.read(10) #从端口读10个字节
ser.write("hello") #向端口些数据
ser.close() #关闭端口

data = ser.read(20) #是读20个字符

data = ser.readline() #是读一行,以/n结束,要是没有/n就一直读,阻塞。

data = ser.readlines()和ser.xreadlines() #都需要设置超时时间

ser.baudrate = 9600 #设置波特率

ser.isOpen() #看看这个串口是否已经被打开

3、获得串行口状态
串行口的属性:
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()

4、设置串行口状态

需要用的常量

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 #字符间隔超时

5、Readline方法的使用

是读一行,以/n结束,要是没有/n就一直读,阻塞。

使用readline()时应该注意:打开串口时应该指定超时,否则如果串口没有收到新行,则会一直等待。如果没有超时,readline会报异常。

6、serial.Serial类——原生端口

class serial.Serial 
{
__init__(port=None, baudrate=9600, bytesize=EIGHTBITS,parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, writeTimeout=None, dsrdtr=False, interCharTimeout=None)
#其中:
# bytesize:FIVEBITS、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:找不到设备或不能配置
open():打开串口
close():立即关闭串口
__del__():析构函数
read(size=1):从串口读size个字节。如果指定超时,则可能在超时后返回较少的字节;如果没有指定超时,则会一直等到收完指定的字节数。
write(data):发送data,并返回发送字节数。如果bytes和bytearray可用(python 2.6以上),则接受其作为参数;否则接受str作为参数。
#异常:SerialTimeoutException——配置了写超时并发生超时时发生此异常。
inWaiting():返回接收缓存中的字节数
flush():等待所有数据写出。
flushInput():丢弃接收缓存中的所有数据
flushOutput():终止当前写操作,并丢弃发送缓存中的数据。
sendBreadk(duration=0.25):发送BREAK条件,并于duration时间之后返回IDLE
setBreak(level=True):根据level设置break条件。
setRTS(level=True)
    setDTR(level=True)
    getCTS()
    getDSR()
    getRI()
    getCD()
    #只读属性:
name:设备名字
portstr:已废弃,用name代替
port:读或者写端口
baudrate:波特率
bytesize:字节大小
parity:校验位
stopbits:停止位
timeout:读超时设置
writeTimeout:写超时
xonxoff:软件流控
rtscts:硬件流控
dsrdtr:硬件流控
interCharTimeout:字符间隔超时
#端口设置可以被读入字典,也可从字典加载设置:
getSettingDict():返回当前串口设置的字典
applySettingDict(d):应用字典到串口设置
#对提供io库的系统(python 2.6或以上),Serial从io.RawIOBase派生。对其它系统,从FileLike派生。
#异常:
exception serial.SerialException
exception serial.SerialTimeoutException
#常量:
serial.VERSION:pyserial版本
#模块函数和属性:
serial.device(number)
serial.serial_for_url(url, *args, **kwargs)
serial.protocol_handler_packages()
serial.to_bytes(sequence):接收一个字符串或整数列表sequence,返回bytes实例

}

python中pyserial模块使用方法相关推荐

  1. 【转】关于python中re模块split方法的使用

    注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...

  2. python中serial模块的使用_python中pyserial模块使用方法

    一.概述 pyserial模块封装了对串口的访问. 二.特性 在支持的平台上有统一的接口. 通过python属性访问串口设置. 支持不同的字节大小.停止位.校验位和流控设置. 可以有或者没有接收超时. ...

  3. Python中Scapy模块使用方法

    Scapy scapy是python中一个可用于网络嗅探的非常强大的第三方库,可以用它来做 packet 嗅探和伪造 packet. scapy已经在内部实现了大量的网络协议.如DNS.ARP.IP. ...

  4. Python中os模块使用方法

    os模块提供了对系统环境.文件.目录等操作系统级的接口函数.本文主要描述os模块和os.path模块常用函数以及常用实例. os模块函数 os.getcwd() 获取当前工作的目录. os.listd ...

  5. Python中安装模块的方法

    1.*nix系统上有一个地方专门有一个地方来放置安装的Python模块 比如在Mac上,这个目录的路径为: /usr/lib/python2.7 将要安装的文件拷贝到这里即可 2.下载模块包,解压后, ...

  6. python添加自定义模块_Python中添加自定义模块的方法

    Python中添加自定义模块的方法 发布时间:2020-07-17 14:01:03 来源:亿速云 阅读:95 作者:小猪 这篇文章主要讲解了Python中添加自定义模块的方法,内容清晰明了,对此有兴 ...

  7. 关于python中requests模块导入问题-python中requests模块的使用方法

    本文实例讲述了python中requests模块的使用方法.分享给大家供大家参考.具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合 ...

  8. python中config方法作用,python中ConfigParse模块的用法

    本文实例讲述了python中ConfigParse模块的用法,分享给大家供大家参考.具体方法如下: 写配置一般用ConfigParse.RawConfigParse类 读配置用ConfigParse. ...

  9. Python中optionParser模块的使用方法实例教程

    Python中optionParser模块的使用方法实例教程 转载  2014-08-29   投稿:shichen2014    我要评论 这篇文章主要介绍了Python中optionParser模 ...

  10. python中导入模块有哪些_python有三种导入模块的方法

    原博文 2011-05-24 10:54 − python有三种导入模块的方法 其一, import modname : 模块是指一个可以交互使用,或者从另一Python 程序访问的代码段.只要导入了 ...

最新文章

  1. Java Socket 客户端使用指定端口多次连接服务器引发 BindException
  2. 富学金融穷学IT,分析互联网的新财富密码
  3. 渐进式图片加载 progressive-image
  4. [Android] (在ScrollView里嵌套view)重叠view里面的onTouchEvent的调用方法
  5. Redis 处理客户端连接的一些内部实现机制
  6. 问题1、图像分割预测时原始图片大小与预测图片大小不一致
  7. Python文档学习笔记(1)--使用Python 解释器
  8. go语言io reader_如何从io.Reader 中读数据
  9. Wunderlist(奇妙清单)
  10. dtcms php,[.net学习]dtcms从前台Flash XSS到后台Getshell
  11. 计算机管理里面删打印机就卡住了,windows系统无法删除打印机任务(重启打印机无效)的解决方法...
  12. Java图像识别技术:Test4J
  13. 旋转向量解法(罗德里格公式推导及理解)
  14. js:写一个函数实现任意数组的翻转
  15. C# 计算指定年月的当月工作日方法
  16. 网页上添加聊天工具代码
  17. 【日常学习】DAU和MAU
  18. gPTP时钟同步(时间同步)协议简介
  19. Android仿淘宝支付安全码
  20. Python攻防-APK批量自动反编译与数据分析

热门文章

  1. adb shell 命令
  2. ZXPInstaller for mac(zxp文件安装器)免费版
  3. 信鸽 ios tag推送 php,信鸽推送(iOS)踩过的坑
  4. 什么是ESAM安全模块
  5. 电工知识:常用电子元件名称及其对应图片实用大全
  6. MITK通用插件(四)The Dicom Browser Plugin
  7. 苹果手机浏览器字体渐变色无效?
  8. 【STM32】标准库 菜鸟入门教程(1)初识最小系统
  9. 登录时候输入验证码,验证码图片从服务器获取方法
  10. 2011年上半年国内优秀初创企业产品汇总