返回顶部
首页 > 资讯 > 后端开发 > Python >python的pyserial模块
  • 102
分享到

python的pyserial模块

模块pythonpyserial 2023-01-31 07:01:00 102人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

pyserial是python提供用于进行串口通信的库 源文档:https://Pythonhosted.org/pyserial/ 1、安装pyserial pip install pyserial 2、查看电脑现连串口设备 import

pyserial是python提供用于进行串口通信的库

源文档:https://Pythonhosted.org/pyserial/

1、安装pyserial

pip install pyserial

2、查看电脑现连串口设备

import serial.tools.list_ports

#检测设备的端口数
# plist = list(serial.tools.list_ports.comports())

# if len(plist) <= 0:
#     print("没有发现端口!")
# else:
#     #端口数
#     print len(plist)

#     plist_0 = list(plist[1])
#     serialName = plist_0[0]
#     print serialName

#     serialFd = serial.Serial(serialName, 9600, timeout=60)
#     print(serialFd.name)

3、将要发送的数据进行转换

所发十六进制需转换为以下格式
# 所发十六进制字符串010591F50000F104
cmd = [0x01, 0x05, 0x91, 0xF5, 0x00, 0x00, 0xF1, 0x04]
    # 转成16进制的函数
    def convert_hex(string, strip_index_end=18):
        result = []
        for i in range(0, strip_index_end, 2):
            hex_num = '0x' + string[i] + string[i+1]
            result.append(eval(hex_num))
        return result

4、进行串口通信

串口通信 
windows下端口为COM*, ubuntu下为/dev/ttyS*

class Ser(object):
        def __init__(self):
                # 打开端口
                self.port = serial.Serial(port=serialconf.SERIAL_NAME, baudrate=serialconf.SERIAL_PORT, timeout=serialconf.SERIAL_TIMEOUT)

    # 发送指令的完整流程
    def send_cmd(self, send_cmd):
            send_cmd = self.convert_hex(send_cmd)
            _LOG.debug("serial port send_command:[%s]" % repr(send_cmd))
            self.port.write(send_cmd)

    def recv_data(self, len=4):
            response = self.port.read(6)
            response = response.encode('hex')
            return response

    # 转成16进制的函数
    def convert_hex(self, string, strip_index_end=18):
            result = []
            for i in range(0, strip_index_end, 2):
                    hex_num = '0x' + string[i] + string[i+1]
                    result.append(eval(hex_num))
            return result

5、测试用例

my_ser = Ser()
print "send blink command"
my_ser.send_cmd(serialconf.BLINK_CMD)
ret = my_ser.recv_data()
print "send blink ret:%s %d" % (ret, ret.lower() == serialconf.BLINK_RET.lower())

6、接口、参数详细介绍

优秀博客:Https://blog.csdn.net/u012611644/article/details/79125234

--结束END--

本文标题: python的pyserial模块

本文链接: https://lsjlt.com/news/191303.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python的pyserial模块
    pyserial是python提供用于进行串口通信的库 源文档:https://pythonhosted.org/pyserial/ 1、安装pyserial pip install pyserial 2、查看电脑现连串口设备 import...
    99+
    2023-01-31
    模块 python pyserial
  • Python的串口通信(pyserial
    串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口是计算机上一种非常通用的设备通信协议。pyserial...
    99+
    2023-01-31
    串口 通信 Python
  • Python模块:time模块
    time模块:python中处理时间的基础模块,有时间戳,元组,自定义,三种时间表现形式。python中时间戳的值是以1970年1月1日0点开始计算的,单位是秒。时间戳:就是两个时间差的数值。时区:传说中在开发服务器/客户端程序时,时区不一...
    99+
    2023-01-31
    模块 Python time
  • python模块:smtplib模块
    1.使用本地的sendmail协议进行邮件发送格式(1):smtpObj=smtplib.SMTP([host [,port [,local_hostname]]])host:SMTP服务器主机的IP地址或者是域名port:服务的端口号(默...
    99+
    2023-01-31
    模块 python smtplib
  • Python中的sys模块、random模块和math模块
    一、sys运行时环境模块 sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。 用法: sys.argv:命令行参数List,第...
    99+
    2024-04-02
  • python中的sys模块和os模块
    目录1.sys模块2.os模块(和操作系统相关数据)1.sys模块 sys模块的常见函数列表: sys.argv: 实现从程序外部向程序传递参数。sys.exit([arg]): 程...
    99+
    2024-04-02
  • python模块学习(queue模块的Q
    学习版本3.5.2 PriorityQueue类和LifoQueue类继承Queue类然后重写了_init、_qsize、_put、_get这四个类的私有方法 Queue:先进先出队列的同步实现,通过双向列表实现的 # Initi...
    99+
    2023-01-31
    模块 python queue
  • Python中的time模块和calendar模块
    目录1、时间戳2、时间元组3、获取当前时间4、格式化时间5、格式化日期6、获取CPU时间7、日历模块在Python中对时间和日期的处理方式有很多,其中转换日期是最常见的一个功能。Py...
    99+
    2024-04-02
  • python中的deque模块(collections的deque模块)
    目录 1. deque是python的collections中的一个类 2.deque的简单使用以及它的方法 2.1 创建deque的方法  2.2 创建deque时,并指定大小maxlen,即能装几个元素, 以及d...
    99+
    2023-09-25
    python 开发语言 collections deque 队列
  • python模块学习----nmap模块
    安装nmap模块:pip install python_nmanmap模块说明:python-nmap是一个帮助使用nmap端口扫描器的python库。它允许轻松操纵nmap扫描结果,并且将是一个完美的选择,为需要自动完成扫描任务的系统管理...
    99+
    2023-01-31
    模块 python nmap
  • 使用Python模块:struct模块
    Python没有提供直接的将用户定义的数据类型和文件IO关联起来的功能,但是它提供了struct库(是一个内置库)——我们可以以二进制模式来写这些数据(有趣的是,它真的是设计来讲文本数据写为缓存的) 1)bytes、str...
    99+
    2023-01-31
    模块 Python struct
  • python加密模块-hashlib模块
    hashlib模块 用于加密相关的操作,3.X里代替了md5模块和sha模块,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法 (sha比md5 更复杂、md5 不能反解) 具体应用:用于网站防篡改。具...
    99+
    2023-01-31
    模块 python hashlib
  • Python的Logging模块
    1.日志的相关概念🍃 日志是指记录系统或应用程序运行状态、事件和错误信息的文件或数据。在计算机系统中,日志通常用于故障排除、性能分析、安全审计等方面。日志可以记录各种信息,如系统启动...
    99+
    2023-09-17
    服务器 linux python
  • Python的CSV模块
    Python 的 CSV模块的使用方法,包括,reader, writer, DictReader, DictWriter.register_dialect一直非常喜欢python的csv模块,简单易用,经常在项目中使用,现在举几个例子说明...
    99+
    2023-01-31
    模块 Python CSV
  • python的subprocess模块
    1 os与commands模块​2 subprocess模块​3 subprocess.Popen类 我们几乎可以在任何操作系统上通过命令行指令与操作系统进行交互,比如Linux平台下的shell。​​那么我们如何通过Python来完成这些...
    99+
    2023-01-31
    模块 python subprocess
  • python中的模块
    模块:随着程序变的越来越大  为了便于维护 需要把它分为多个文件 为此python允许把定义放入一个文件 然后在其他脚本中将其作为模块导入 创建模块: 将相关的语句和定义放入与模块同名的文件中 #file:module.py def num...
    99+
    2023-01-31
    模块 python
  • python的lxml模块
    环境:python2.7安装lxml模块pip install lxml例子:from lxml import etree text = ''' <div>     <ul>          <li clas...
    99+
    2023-01-31
    模块 python lxml
  • python的Pattern模块
    Pattern is a web mining module for the Python programming language. It bundles tools for data retrieval (Google + T...
    99+
    2023-01-31
    模块 python Pattern
  • python的paramiko模块
      paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。  由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, ...
    99+
    2023-01-31
    模块 python paramiko
  • Python的functools模块
    (wrapperwrappedassigned = WRAPPER_ASSIGNMENTSupdated = WRAPPER_UPDATES):  类似咱们自己写的copy_preperties功能;  wrapper包装函数, wrapp...
    99+
    2023-01-31
    模块 Python functools
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作