您现在的位置是:首页 > 技术教程 正文

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

admin 阅读: 2024-03-22
后台-插件-广告管理-内容页头部广告(手机)

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

一.环境配置

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

1.python 3.7.8  

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

2.serial库安装

使用pip接口进行安装

  1. pip install serial
  2. pip install pyserial

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

二.serial库基本函数使用

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

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

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

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

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

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

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

2.write函数串口写数据

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

往串口里面发送数据

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

\n:换行的意思

bsp:要发送的内容

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

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

  1. ser.read() ####从端口读字节数据,默认1个字节
  2. ser.read_all() ####从端口接收全部数据
  3. ser.readline() ###读一行数据
  4. ser.readlines() ###读多行数据

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

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

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

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

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

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

三.实例演示

直接上代码:

  1. import serial
  2. import time
  3. if __name__ == '__main__':
  4. ser = serial.Serial('COM3',115200,timeout=5) ##连接串口,打开
  5. time.sleep(0.5)
  6.     Write = ser.write(b'Hello\n') ##发送数据
  7.     Read = ser.read() ###接收1个字节数据
  8.     print(Read)
  9.    
  10.     Write = ser.write(b'Hello\n') ##发送数据
  11.     Read = ser.readline() ##接收一行数据
  12. print(Read)
  13.     Write = ser.write(b'Hello\n') ##发送数据
  14.     Read = ser.read_all() ###接收所有数据
  15. print(Read)
  16.     Write = ser.write(b'Hello\n') ##发送数据
  17. Read = ser.readlines() ###读多行数据
  18. print(Read)
  19.     ser.close() ###关闭串口连接

输出:

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

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

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

ser.isOpen()

查看端口是否被打开

ser.open()

打开端口

flush()

等待所有数据写出

flushInput()

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

flushOutput()

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

四.总结

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

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

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

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

@Neng

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索