神奇的python(六)之python的串口操作(pyserial)

2023-11-17

简介:最近项目突然要使用python串口操作,这不,查资料,翻文档,是时候写一份串口操作的简要用法,以后有时间可以使用pyqt再写个界面,弄个串口调试终端。

(1) 安装pyserial库

pip install pyserial

(2) pyserial库常用函数介绍

serial = serial.Serial(‘COM1’, 115200) 打开COM1并设置波特率为115200,COM1只适用于Windows

serial = serial.Serial(‘/dev/ttyS0’, 115200) 打开/dev/ttyS0并设置波特率为115200, 只适用于Linux

print serial .portstr 能看到第一个串口的标识

serial .write(“hello") 往串口里面写数据

serial .close() 关闭serial 表示的串口

serial .open() 打开串口

data = serial .read(num) 读num个字符

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

serial .baudrate = 9600 设置波特率

print serial 可查看当前串口的状态信息

serial .isOpen() 当前串口是否已经打开

serial.inWaiting() 判断当前接收的数据

serial.flushInput() 清除输入缓冲区数据

serial.flushOutput() 中止当前输出并清除输出缓冲区数据

(3) 实例: 获取从其他串口发送来的数据并回显

#!/usr/bin/python
# coding=UTF-8

import serial

###################################################
#
# 功 能: 将接收到的数据已hex显示
# 参 数: 串口接受到的数据
# 返 回: 转换后的数据
#
###################################################

def hexshow(data):
    hex_data = ''
    hLen = len(data)
    for i in xrange(hLen):
        hvol = ord(data[i])
        hhex = '%02x' % hvol
        hex_data += hhex+' '
    print 'hexshow:', hex_data


###################################################
#
# 功 能: 将需要发送的字符串以hex形式发送
# 参 数: 待发送的数据
# 返 回: 转换后的数据
#
###################################################

def hexsend(string_data=''):
    hex_data = string_data.decode("hex")
    return hex_data



if __name__ == '__main__':
    serial = serial.Serial('/dev/ttyS0', 115200)
    print serial
    if serial.isOpen():
       print("open success")
    else:
        print("open failed")


    try:
        while True:
            count = serial.inWaiting()
            if count > 0:
                data = serial.read(count)
                if data != b'':
                    print("receive:", data)
                    serial.write(data)
                else:
                    serial.write(hexsend(data))
    except KeyboardInterrupt:
        if serial != None:
            serial.close()


以下隐藏内容为源代码,有需求可以下载,当作是对本站的支持,谢谢。

参考源码下载:https://download.csdn.net/download/absinjun/10582891
[erphpdown]解压密码:ZMJPY123[/erphpdown]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

神奇的python(六)之python的串口操作(pyserial) 的相关文章

  • 在 Python 中解析 TCL 列表

    我需要在双括号上拆分以空格分隔的 TCL 列表 例如 OUTPUT 172 25 50 10 01 01 Ethernet 172 25 50 10 01 02 Ethernet Traffic Item 1 172 25 50 10 01
  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 为什么 dataclasses.astuple 返回类属性的深层副本?

    在下面的代码中astuple函数正在执行数据类的类属性的深层复制 为什么它不能产生与函数相同的结果my tuple import copy import dataclasses dataclasses dataclass class Dem
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • VSCode Settings.json 丢失

    我正在遵循教程 并尝试将 vscode 指向我为 Scrapy 设置的虚拟工作区 但是当我在 VSCode 中打开设置时 工作区设置 选项卡不在 用户设置 选项卡旁边 我还尝试通过以下方式手动转到文件 APPDATA Code User s
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • Pycharm 在 os.path 连接上出现“未解析的引用”

    将pycharm升级到2018 1 并将python升级到3 6 5后 pycharm报告 未解析的引用 join 最新版本的 pycharm 不会显示以下行的任何警告 from os path import join expanduser
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • Python GTK+ 画布

    我目前正在通过 PyGobject 学习 GTK 需要画布之类的东西 我已经搜索了文档 发现两个小部件似乎可以完成这项工作 GtkDrawingArea 和 GtkLayout 我需要一些基本函数 如 fillrect 或 drawline
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何将 Django 中的权限添加到模型并使用 shell 进行测试

    我在模型中添加了 Meta 类并同步了数据库 然后在 shell 中创建了一个对象 它返回 false 所以我真的无法理解错误在哪里或者缺少什么是否在其他文件中可能存在某种配置 class Employer User Employer in
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是
  • python 对浮点数进行不正确的舍入

    gt gt gt a 0 3135 gt gt gt print 3f a 0 314 gt gt gt a 0 3125 gt gt gt print 3f a 0 312 gt gt gt 我期待 0 313 而不是 0 312 有没有

随机推荐

  • 【Basis】狄利克雷分布

    初次看狄利克雷分布 比较懵 主要是它有很多先行知识 所以我先介绍狄利克雷分布用到的多项式分布 gamma 函数 beta分布 然后再介绍狄利克雷分布 参考文献见文章末 目录 一 多项式分布 multinomial distribution
  • 仅仅是一张照片就是不能刷脸支付的

    科技改变未来并不是一句口号 就拿买东西来讲 以前人们都是一手交钱一手交货 拿到大额的纸币 还要验真假 而现在移动支付成为主要付款方式 只要一部手机 扫一扫就能付款 一开始也有很多人不习惯手机支付 因为觉得没有现金实在 整天就是一堆数字转来转
  • 解决TypeError: 'function' object is not subscriptable

    一 解决问题 在tensorflow中使用零矩阵初始化变量的时候出现的该异常 TypeError function object is not subscriptable 二 解决方法 问题代码如下 bias tf Variable tf
  • 深度学习(9):Inception危险物品检测

    目标 基于Inception网络实现对危险物品检测 将危险物品图片或视频经过图像预处理后输入模型推理 最后将检测结果进行可视化输出 一 原理 Google的Inception网络介绍 Inception为Google开源的CNN模型 至今已
  • Java的变量

    1 Java 变量类型 答 在Java语言中 所有的变量在使用前必须声明 声明变量的基本格式如下 type identifier value identifier value 格式说明 type为Java数据类型 identifier是变量
  • Java实现生成csv文件并导入数据

    一 需求 下载列表 在没有过滤之前下载列表所有数据 点击过滤之后 下载过滤之后对数据 生成csv文件 二 思路 先根据条件 是否过滤了数据 筛选出数据 将数据导入csv文件 生成文件并返回 三 代码实现 1 controller层 文件下载
  • Gbase 8s存储结构简介及空间管理

    Gbase 8s实例可以创建多个dbspace 一个dbspace可以包含多个物理chunk 一个chunk分成多个连续扩展区extent 一个表或者索引占用的空间被称为一个tablespace 一个extent包含多个物理页page 其中
  • 利用多线程来实现一个简单的服务器,来实现处理多个用户的请求

    服务器来实现接受多个客户的请求 并且处理响应 服务器采用了多线程 代码如下服务器 package cn kgc basic tcpthread import java io IOException import java net Serve
  • BERT从零详细解读:如何微调BERT,提升BERT在下游任务中的效果

    a 是句子对的分类任务 b 是单个句子的分类任务 c 是问答任务 d 是序列标注任务 首先我自己最常用的就是 文本分类 序列标注和文本匹配 这四个都是比较简单的 我们来看d 序列标注 其实就是把所有的token输出 做了一个softmax
  • Blender学习笔记(建模#3:点操作)

    建模 3 点操作 点操作 1 点的移动 2 点的滑移 3 点的合并 4 点的倒角 5 顶点连接 点操作 1 点的移动 当要将点在斜面上移动时 直接移动很难顺着斜面移动 这时可以使用法向坐标系 2 点的滑移 基本同线的滑移 3 点的合并 两点
  • AngularJs 的compile, preLink , postlink

    AngularJs 的compile preLink postlink 主要参考文章 1 http www jb51 net article 58229 htm 文章中对这三个概念做了详细的解析 如果你只写了一个link 那么系统会默认是p
  • Burp Suit+Phpstudy+Pikachu搭建Web安全练习环境

    1 软件安全测试工具Burp Suit安装 1 1 社区版 进入官网 Download Burp Suite Community Edition PortSwigger 进行下载安装即可 1 2 专业版 搜索Burp Suit2 0 11从
  • 链表相交等相关问题java - 左神算法基础课04 - Kaiqisan

    大家好 都吃晚饭了吗 我是Kaiqisan 是一个已经走出社恐的一般生徒 今天讲讲我至今碰到的最变态的链表题 问题 单链表两个单链表可能有环 可能无环 判断两个链表是否存在相交 如果有相交 返回其中一个交点 要求 时间复杂度 O m n 空
  • 【计算机网络】湖科大微课堂笔记 p36-37 集线器与交换机的区别、以太网交换机自学习和转发帧的流程

    集线器与交换机的区别 集线器 共享型以太网 交换机 交换式以太网 早期与集线器 使用集线器HUB在物理层拓展以太网 下面是三个独立的以太网 可以用集线器把它们互联形成更大的以太网 若一系中的某主机向二系中某主机发送数据帧 则此信号会传遍整个
  • antd 4.x, 实现Table 可编辑 , Table 结合Form.List,实现单独校验Form.List、Form.Item校验

    背景 需要实现一个这种表格 思路 1 编辑表格 antd 有案例 2 Form List 嵌套Table 实现 关键点 单行校验怎么传参 单行如何获取值 单行如何重置 注意 我的form 是从外层传进来的 这个没有影响 正常在 Form L
  • gdb调试工具的基本用法

    一 基本命令 gcc g test c o test 编译时生成debug有关的程序信 gdb test 启动调试 help 查看命令帮助 具体命令查询在gdb中输入help 命令 简写h run 重新开始运行文件 run text 加载文
  • Android 解析json数据

    花了两天的时间完成了一个简单的小程序 服务器端从数据库封装json 数据 客户端解析json数据后用listview 显示 现在做一个简单的梳理 一 服务器端从数据库中获取数据后封装成json数据 服务器端编程 连接数据库的过程就不上代码了
  • 给女朋友道歉的java代码_我用开源工具给女朋友写道歉信!

    一 又是一个可乐配赘婿的晚上 我和女朋友舒服的窝在沙发里 一边看爽剧一边傻笑 其实 我并不太喜欢看这种剧 但是为了陪女朋友 我还是乐此不疲 可能因为长期996 我的脑子已经坏掉了 就在女朋友一边大笑一边大喊好甜啊磕到啦 我用地图老爷爷看手机
  • 解决邮件附件乱码问题

    参考这个博客 https blog csdn net daiqinge article details 89970382或者https blog csdn net z69183787 article details 79238735 1 如
  • 神奇的python(六)之python的串口操作(pyserial)

    简介 最近项目突然要使用python串口操作 这不 查资料 翻文档 是时候写一份串口操作的简要用法 以后有时间可以使用pyqt再写个界面 弄个串口调试终端 1 安装pyserial库 pip install pyserial 2 pyser