pySerial

介绍

封装了串口通讯模块,支持Linux、Windows、BSD(可能支持所有支持POSIX的操作系统),支持Jython(Java)和IconPython(.NET and Mono).

首页 http://pyserial.sf.net/

特性
所有平台使用同样的类接口
端口号默认从0开始,程序中不需要知道端口名称
像文件读写一样的API,read、write(readline等也受支持)
所有程序全由Python完成,除了标准库外不依赖其他包,除了pywin32(windows)、JavaComm(Jython). POSIX(Linux, BSD) 只依赖Python标准库。
依赖环境
Python2.2或更新版本
windows 上的 pywin32扩展
Java/Jython上的 "Java Communications" (JavaComm)或者兼容包
安装
pip/easy_install

pip install pyserial

easy_install pyserial

windows

下载地址 : http://sourceforge.net/project/showfiles.php?group_id=46487

快速上手
Open port 0 at "9600,8,N,1", no timeout

>>> import serial
>>> ser = serial.Serial(0) # open first serial port
>>> print ser.portstr # check which port was really used
>>> ser.write("hello") # write a string
>>> ser.close() # close port

Open named port at "19200,8,N,1", 1s timeout

>>> ser = serial.Serial('/dev/ttyS1', 19200, timeout=1)
>>> x = ser.read() # read one byte
>>> s = ser.read(10) # read up to ten bytes (timeout)
>>> line = ser.readline() # read a '/n' terminated line
>>> ser.close()

Open second port at "38400,8,E,1", non blocking HW handshaking

>>> ser = serial.Serial(1, 38400, timeout=0,
... parity=serial.PARITY_EVEN, rtscts=1)
>>> s = ser.read(100) # read up to one hundred bytes
... # or as much is in the buffer

Get a Serial instance and configure/open it later

>>> ser = serial.Serial()
>>> ser.baudrate = 19200
>>> ser.port = 0
>>> ser
Serial<id=0xa81c10, open=False>(port='COM1', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
>>> ser.open()
>>> ser.isOpen()
True
>>> ser.close()
>>> ser.isOpen()
False

如果给定端口,端口将在创建对象之后立即打开,如果没有给定端口,可选timeout参数

timeout=None # wait forever
timeout=0 # non-blocking mode (return immediately on read)
timeout=x # set timeout to x seconds (float allowed)

Serial实例的可用方法
open() # 打开端口
close() # 立即关闭端口
setBaudrate(baudrate) # change baud rate on an open port
inWaiting() # return the number of chars in the receive buffer
read(size=1) # read "size" characters
write(s) # 把字符串s写到该端口
flushInput() # 清除输入缓存区,放弃所有内容
flushOutput() # 清除输出缓冲区,放弃输出
sendBreak() # 发送中断条件
setRTS(level=1) # set RTS line to specified logic level
setDTR(level=1) # set DTR line to specified logic level
getCTS() # return the state of the CTS line
getDSR() # return the state of the DSR line
getRI() # return the state of the RI line
getCD() # return the state of the CD line

Serial实例的属性
只读

portstr # 设备名称
BAUDRATES # list of valid baudrates
BYTESIZES # list of valid byte sizes
PARITIES # list of valid parities
STOPBITS # list of valid stop bit widths

下面属性值被更改后端口会重新配置,即使端口已经打开

port # port name/number as set by the user
baudrate # current baud rate setting
bytesize # byte size in bits
parity # parity setting
stopbits # stop bit with (1,2)
timeout # timeout setting
xonxoff # if Xon/Xoff flow control is enabled
rtscts # if hardware flow control is enabled

异常
serial.SerialException

常量
parity:

serial.PARITY_NONE
serial.PARITY_EVEN
serial.PARITY_ODD

stopbits

serial.STOPBITS_ONE
al.STOPBITS_TWO

bytesize:

serial.FIVEBITS
serial.SIXBITS
serial.SEVENBITS
serial.EIGHTBITS

翻译(有删减)仅供参考

原文地址:http://blog.csdn.net/dainiao01/article/details/5885122
官方文档:http://pyserial.sf.net/

Pyserial操作串口的更多相关文章

  1. C#操作串口总结

    Technorati 标签: C#,SerialPort,ReadTo,ReadTimeout        最近几天一直在调一个要长时间连续不断的操作串口,并且是多线程运行,不允许中断的服务.后来服 ...

  2. MSComm控件与Win32 API操作串口有何区别?

    MSComm控件与Win32 API操作串口有何区别? [问题点数:50分,结帖人shell_shell]   收藏帖子 回复 我是一个小兵,在战场上拼命!   结帖率 83.33% 我以前用MSCo ...

  3. Raspberry pi 使用python+pySerial实现串口通信(转)

    Raspberry pi 使用python+pySerial实现串口通信 转:http://blog.csdn.net/homeway999/article/details/8642353   目录( ...

  4. android开发(37) android使用android_serialport_api 操作串口,解决权限问题

    最近有个项目,要使用android设备操作串口的 斑马GK888T打印机,使用打印机打印二维码. 硬件设备连接方式: 安卓设备 通过 串口RS232 连接 斑马打印机的串口 那么就要解决:使用安卓设备 ...

  5. pyserial库-串口通讯模块

    pySerial 封装了串口通讯模块,支持Linux.Windows.BSD(可能支持所有支持POSIX的操作系统),支持Jython(Java)和IconPython(.NET and Mono). ...

  6. CE 操作串口

    WinCE里面都是通过标准的系统API对串口进行操作的,但是串口不同于其它文件,它是是独占式地操作的. 下面是一个操作的串口类: #pragma once typedef void (*LPDataA ...

  7. 通过shell操作串口

    1. 通过stty工具设置串口参数,例如 stty -F /dev/ttyUSB0 raw speed 9600 -echo min 0 time 10 上例设置了ttyUSB0设备的数据流格式为ra ...

  8. python操作串口

    import serial test = serial.Serial("COM1",115200)#这里就已经打开了串口 print(test.portstr) test.writ ...

  9. C# 如何操作串口

    1.首先要引用  System.IO.Ports using System; using System.Collections.Generic; using System.ComponentModel ...

随机推荐

  1. 同个项目写webservice引用EF出现的问题

    错误1: 定的架构无效.错误: DataModel.ssdl(2,2) : 错误 0152: 未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供 ...

  2. TADOQuery学习总结

    上一篇讲解了一些TADOQuery的简单的用法,但是还有很多方法没有讲到,这里就直接拿来主义,转载一篇<TADOQuery学习总结>为我所用. 1.Create三种参数的区别 TADOQu ...

  3. 【My Life】写在年末, 我的2013

    [My Life]写在年末, 我的2013 SkySeraph Dec. 30  2013 Email:skyseraph00@163.com 好久没写博客了, 遗忘的历史,遗忘了自我... 岁月拾回 ...

  4. 友盟推送 .NET (C#) 服务端 SDK rest api 调用库

    友盟推送 .NET SDK rest api 介绍 该版本是基于友盟推送2.3版本封装的,网上查询了下发现没有.NET版本的调用库,官方也没有封装.NET的版本,只有python.java.php版本 ...

  5. I Could Have Danced All Night

    百老汇著名音乐剧<窈窕淑女(My Fair Lady)>中脍炙人口的经典歌曲. Bed, bed ,I couldn't go to bed床,床,我不能上床去 My head's too ...

  6. GDB的常用命令

    定断点b line.会返回一个断点号(breakpoint-no). 输出p val.可以夹杂类型装换.解引用. 遇到断点自动执行命令commands breakpoint-no. 停止执行s. 退出 ...

  7. OS X 下不通过Homebrew安装ASP.NET 5开发环境

    在 ASP.NET 的 Home repo 里,推荐使用 Homebrew 安装开发环境,不过我的电脑里已经有 ports 了,这应该是当年用 rvm 安装 Ruby 时悄悄地装上的吧.不管怎样,作为 ...

  8. 百度地图API试用--(初次尝试)

    2016-03-17: 百度地图API申请key的步骤相对简单,不做过多阐述. 初次使用百度地图API感觉有点神奇,有些功能加进来以后有点问题,注释掉等有空再解决. 代码如下: <%@ page ...

  9. shell获取文件最后100行,开头100行,指定开始行和结束行的内容

    文件最后100行:tail -n100 filePath: 文件开头100行:head -n100 filePath: 文件指定开始行和结束行的内容:sed '1,100p' filePath: 文件 ...

  10. LINUX 查看当前系统的内存使用情况

    # free 显示结果如下: Mem:表示物理内存统计 total 内存总数 8057964KB used 已使用的内存 7852484KB free 空闲的内存数 205480KB shared 当 ...