我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python serial读串口

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python serial读串口

由于项目需求,需要从传感器节点和GPS中读取数据,所以学习了如何用python读串口。

python提供了pySerial,Linux和windows下有相应的模块

linux版本: pyserial (http://pyserial.wiki.sourceforge.net/pySerial)   (在我的虚拟机中Ubuntu 12.04 LTS 版本中好像已经自带)

windows版本: pywin32 (http://sourceforge.net/projects/pywin32/) 下载直接安装

先看一个例子:

import serial
ser = serial.Serial('/dev/ttyTX0', 9600, timeout=1)
while True:
    data = ser.read(100)
    print repr(data)


1、读串口步骤:

实例化 --> 设置 (当然可以一步完成)

2、serial详解

2.1 serial类原型
ser = serial.Serial(
port=None,              # number of device, numbering starts at
# zero. if everything fails, the user
# can specify a device string, note
# that this isn't portable anymore
# if no port is specified an unconfigured
# an closed serial port object is created
baudrate=9600,          # baud rate
bytesize=EIGHTBITS,     # number of databits
parity=PARITY_NONE,     # enable parity checking
stopbits=STOPBITS_ONE,  # number of stopbits
timeout=None,           # set a timeout value, None for waiting forever
                              #zero, non-blocking mode, return immediately on read 
xonxoff=0,              # enable software flow control
rtscts=0,               # enable RTS/CTS flow control
interCharTimeout=None   # Inter-character timeout, None to disable
)
注;Port可以用数字表示。COM1为 0,COM2为1 .......
也可以实用绝对路径:ser.port = '/dev/ttySAc2' 
timeout说明(None和 0不同):
timeout = None: 长时间等待
timeout = 0: 不阻塞形式 (读完之后就返回)
timeout = x: x秒后超时 (float allowed)


2.2 Serial方法:
open()                  # open port
close()                 # close port immediately
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)                # write the string s to the port
flushInput()            # flush input buffer, discarding all it's contents
flushOutput()           # flush output buffer, abort output
sendBreak()             # send break condition
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

2.3 Serial 实例属性
portstr                 # device name
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

3.简单实例

import serial
ser = serial.Serial()
def hexShow(argv):
    result = ''
    hLen = len(argv)
    for i in xrange(hLen):
        hvol = ord(argv[i])
        hhex = '%02x'%hvol
        result += hhex+' '
        print 'hexShow:',result
ser.baudrate = 57600
ser.port = '/dev/ttySAC2'

ser.open()
readstr = ser.read(20)
print ser.portstr
hexShow(readstr)

执行结果如图:


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python serial读串口

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python serial读串口

由于项目需求,需要从传感器节点和GPS中读取数据,所以学习了如何用python读串口。python提供了pySerial,Linux和windows下有相应的模块linux版本: pyserial (http://pyserial.wiki
2023-01-31

python读写串口

#!/usr/bin/pythonimport serialfrom time import sleepser = serial.Serial('/dev/ttyUSB0', 9600, timeout=0.5) print ser.por
2023-01-31

linux中serial串口怎么打开

在Linux中,可以使用以下命令打开serial串口:使用ls /dev/命令查看所有设备文件,找到对应的串口设备文件。通常串口设备文件的命名格式为ttyS*(如ttyS0、ttyS1等)或ttyUSB*(如ttyUSB0、ttyUSB1等
2023-10-24

Python 串口读写实现

#Python 串口读写实现如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518031.安装pyserialhttps://pypi.python.org/pypi/pyserialDo
2023-01-31

python怎么读取uart串口

要读取UART串口数据,可以使用Python的`serial`库。首先,你需要安装`pyserial`库,可以使用以下命令进行安装:pip install pyserial接下来,可以使用以下代码来读取UART串口数据:import
2023-10-27

PyQt5+serial模块实现一个串口小工具

这篇文章主要为大家详细介绍了如何利用PyQt5和serial模块实现一个简单的串口小工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
2023-01-13

Python的串口

要使用python中的串口,可以下载pywin32-224-cp36-cp36m-win_amd64.whl去安装或者pip install去安装。调试下来,有一点很不爽,读取read()数据的timeout时间最小单位是秒,这对应很频繁的
2023-01-30

Python操作串口

首先需确保安装了serial模块,如果没安装的话就安装一下python-pyserial。一个Python实现的串口Echoimport serialimport systry:ser = serial.Serial('/dev/ttyUS
2023-01-31

Python3 串口两进程同时读写

通过两个进程分别读写串口,并把发送与接收到的内容记录在blog中,收到q时程序结束并退出import threading,timeimport serialimport stringclass SerThread: def __ini
2023-01-31

linux串口读写异步怎么实现

在Linux系统中,可以使用文件IO的方式来实现串口的读写操作。具体的步骤如下:1. 打开串口设备文件: 使用`open()`函数来打开串口设备文件,获取文件描述符。```cint fd = open("/dev/ttyS0", O_RDW
2023-09-16

Python的串口通信(pyserial

串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口是计算机上一种非常通用的设备通信协议。pyserial模
2023-01-31

Python串口编程(转载)

python的串口网上有很多例子,这里了只是把认为好的整理到一起。首先,应该安装serial模块,还能开始后续的操作。我用的python2.6,serial模块可以在这里下载安装serial模块下载1,字符串的发送接收短接串口的2、3脚,创
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录