【python】之serial模块,读写串口数据!

这篇具有很好参考价值的文章主要介绍了【python】之serial模块,读写串口数据!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口是计算机上一种非常通用的设备通信协议。pyserial模块封装了python对串口的访问,为多平台的使用提供了统一的接口。

一.环境配置

我这边python的环境是3.7.8版本的,下载路径如下:

1.python 3.7.8  

可直接进入官网下载安装:Download Python | Python.org

2.serial库安装

使用pip接口进行安装


pip install serial

pip install pyserial

pip接口详细说明可以看:【python】之pip,Python 包管理工具详解!_python包管理工具pip_==PP的博客-CSDN博客

二.serial库基本函数使用

1.串口初始化的函数serial.Serial():


ser = serial.Serial('COM3',115200,timeout=5)

来说一下以上函数内的三个参数的作用:

参数1:com3为串口读写的端口号

参数2:115200为串口的波特率

参数3:timeout为串口的超时设置

以上三个参数作为常用的参数,这边主要说一下,其他的参数用的比较少这边就不予介绍,感兴趣的可以去官方文档或者其他博客区搜索一下。

2.write函数串口写数据


Write = ser.write(b'bsp\n') 

往串口里面发送数据

b:此参数表示bytes类型, 直接发送字符串会报错

\n:换行的意思

bsp:要发送的内容

注意:必须要在前面加入b,表示以bytes形式像串口写入数据。

3.read()函数串口读数据


ser.read()  ####从端口读字节数据,默认1个字节

ser.read_all()  ####从端口接收全部数据

ser.readline()   ###读一行数据

ser.readlines()   ###读多行数据

串口的读数据操作这边就统一来介绍了,分别为:

(1)ser.read()  :从端口读字节数据,默认1个字节

(2)ser.read_all()  :从端口接收全部数据

(3)ser.readline()   :读一行数据

(4)ser.readlines()   :读多行数据

介绍完几个基础的函数使用,那么接下来我们通过实例演示来让我们更加了解serial库的一个使用。

三.实例演示

直接上代码:


import serial
import time

if __name__ == '__main__':
    ser = serial.Serial('COM3',115200,timeout=5)  ##连接串口,打开
    time.sleep(0.5)

    Write = ser.write(b'Hello\n')  ##发送数据
    Read = ser.read()  ###接收1个字节数据
    print(Read)
    
    Write = ser.write(b'Hello\n')  ##发送数据
    Read = ser.readline()  ##接收一行数据
    print(Read)

    Write = ser.write(b'Hello\n')  ##发送数据
    Read = ser.read_all()  ###接收所有数据
    print(Read)

    Write = ser.write(b'Hello\n')  ##发送数据
    Read = ser.readlines()   ###读多行数据
    print(Read)

    ser.close()  ###关闭串口连接

输出:

【python】之serial模块,读写串口数据!
这边也是往串口发送"Hello"字符,用ser.read()来读取如上图所述。
【python】之serial模块,读写串口数据!
这边也是往串口发送"Hello"字符,用ser.readline()来读取如上图所述。
【python】之serial模块,读写串口数据!
这边也是往串口发送"Hello"字符,用ser.read_all()来读取如上图所述。
【python】之serial模块,读写串口数据!

这边也是往串口发送"Hello"字符,用ser.readlines()来读取如上图所述。

除了以上几个函数的使用,还有以下函数及功能:

ser.isOpen()

查看端口是否被打开

ser.open()

打开端口

flush()

等待所有数据写出

flushInput()

丢弃接收缓存中的所有数据

flushOutput()

终止当前写操作,并丢弃发送缓存中的数据

四.总结

基础的串口读写操作就如上所示啦,这边想要更加深入了解serial库的使用还可以阅读我的另一篇文章:

【python】制作一个串口工具(上)!_python编写串口工具_==PP的博客-CSDN博客

公众号不定期也会更新一些有意思的小项目及教程等~

想获取小项目源码的小伙伴,点击下方关注下我的微信公众号,后台私信我奥!

@Neng文章来源地址https://www.toymoban.com/news/detail-452169.html

到了这里,关于【python】之serial模块,读写串口数据!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C#】【串口通信(Serial Port)】建议串口调试WinForm桌面应用实例——已实现功能<存在未知BUG>

    1、界面组件  2、界面实现代码 界面代码   3、逻辑代码 逻辑代码   4、效果展示   5、错误提醒   参考网址:C# 实现串口通信 - 编程教程 (17bigdata.com)

    2024年02月08日
    浏览(46)
  • STM32+Zigbee模块实现串口通信获取传感器数据

    1.两个Zigbee透传模块 2.两块32板(我手上的是VET6和RCT6的两块板子),其它的板子也可以,不过注意一下启动文件对应 3.颗粒物传感器 DL-22无线串口模块 1.工作模式分为点对点和广播模式 点对点模式,要设置一个发送端,一个接收端,根据它说明书进行设置就好,还需要设置相

    2023年04月08日
    浏览(45)
  • 【友善串口调试助手Serial Port Utility以ASCII形式发送字节数据显示0D的问题】

    在做DS18B20温度检测时自己想通过UART串口接收上位机发出的指令来进行相应的操作,但是第一次上板未能成功,所以回过头来逐步排查问题 自己考虑FPGA与DS18B20数据交互对DS18B20的控制可分为三类:复位、写操作与读操作,每种操作后面还需跟相应具体的指令,如SKIP ROM [CCh]、

    2024年04月28日
    浏览(46)
  • 串口通信——蓝牙模块使用(HC-08为例)

    (7条消息) 51单片机——串口通信详解(STC89C51为例)_佛科院深夜学习的博客-CSDN博客 https://blog.csdn.net/weixin_63568691/article/details/128274778 AT指令指在不连接蓝牙的条件下,通过串口发送,使蓝牙模块功能发生改变的指令 跟开发板与电脑进行串口通信相同的,需要一个USB转TTL模块,

    2024年02月02日
    浏览(50)
  • ESP32用作经典蓝牙串口透传模块与手机进行串口通信

    ESP32-WROOM-32模组集成了双模蓝牙包括传统蓝牙(BR/EDR)、低功耗蓝牙(BLE)和 Wi-Fi,具有广泛的用途:Wi-Fi 支持极大范围的通信连接,也支持通过路由器直接连接互联网;而蓝牙可以让用户连接手机或者广播 Bluetooth LE Beacon 以便于信号检测。 蓝牙特性: • 支持标准 Class-1、

    2024年02月09日
    浏览(40)
  • 蓝桥杯模块学习10——串口通信(深夜学习——单片机)

    51单片机——串口通信详解(STC89C51为例)_佛科院深夜学习的博客-CSDN博客 (1)波特率与SMOD无关 (2)波特率等于溢出率除4 (1)T2R:控制定时器2是否允许使用,置“1”为允许 (2)T2_C/T:控制定时器2用作定时器还是计数器,置“0”为定时器(默认) (3)T2X12:控制定时器

    2023年04月08日
    浏览(51)
  • ESP8266模块教程,包含电路连接,固件烧录,串口通信

    Author : w2y        Date : 2022.06.28 资料下载: 链接:https://pan.baidu.com/s/1cSpXo7lVzewLXiB9PyWlvg?pwd=wh8a  提取码:wh8a    GPIO0 接地进入下载(烧录)模式,不接进入运行模式                     (下载模式)                                    (运行模式) MQTT_ESP-12S_D

    2024年02月01日
    浏览(60)
  • Orangepi Zero2——手机连接Linux与语音模块串口通信

    1、把手机接入开发板 2、安装 adb 工具,在终端输入 adb 安装指令: 3、dmesg 能查看到手机接入的信息,但是输入adb devices会出现提醒 4、配置文件,以支持USB设备的热拔插,支持UDEV的机制 在/etc/udev/rules.d 文件夹下创建规则文件 cd /etc/udev/rules.d/ sudo vim 51-android.rules 在文件中添加

    2024年02月09日
    浏览(46)
  • Vue使用Serial连接串口

    本来只是随手记录一下,发现看的人多了,想着还是修复一下bug吧,供各位看官指正 2022-10-24本次更新: 1、修复在不支持Serial的情况下,控制台报错 2022-09-19本次更新:  1、修复了传输数据接收分隔的情况(增加数据缓存)  2、修复串口连接没有使用选择的波特率等参数 1、 Ser

    2024年02月20日
    浏览(38)
  • Arduino与LU-ASR01语音识别模块的双向串口通信实现

        之前我写了一篇《Arduino的智能语言输入实现》,讨论了Arduino与LU-ASR01之间通过串口通信实现Arduino的中文语音输入,不过那个通信是不完整的,因为LU-ASR01的串口只有一个发送端口TX,而没有接收端口RX。其实在真正的应用中,LU-ASR01通常也需要接收上位机的数据,例如为确

    2024年02月05日
    浏览(302)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包