Python中使用串口

发布时间:2018年08月05日 阅读:1484 次

全局把握

安装pyserial

Python 中调用串口的库有很多,最常见的是 pyserial
https://pythonhosted.org/pyserial/index.html

直接在pip中安装即可。
在命令行中输入以下命令,并回车即可:
pip install pyserial

安装虚拟串口软件,在同一台电脑上调试串口

虚拟串口可以在你的电脑上虚拟出来几个COM口
可以将两个虚拟的COM口连通
就好比真的有两个串口,TXD和RXD被交叉连接一样
这样,你就可以用电脑上的串口助手打开其中的一个COM口
用Python打开另一个COM口
来调试和验证你的串口收发

你可以百度一个,也可以直接去零妖的博客下载

安装完成后,你可能需要破解一下。如果是企业用,建议你购买正版软件。
详细的过程我就不传播了,百度一大把的。

打开软件,直接添加一对虚拟串口,并关联一下。

此时就可以关闭这个软件了。
打开你的设备管理器,会发现多了两个COM口

打开两个串口助手,就可以测试效果。
注意:一个打开COM1,另一个打开COM2,波特率保持一致,数据位保持一致。

在Python中使用串口

新建Python程序很简单
在桌面上新建一个文本文件,比如 串口.txt
直接修改文件的后缀为 串口.py 即可
然后使用文本编辑器打开,并修改即可。
零妖使用VSCode打开并修改代码。

打开串口

# -*- coding: utf-8 -*-
#测试验证串口功能

from serial import *
import serial #导入pyserial库

ser = serial.Serial()  #实例化一个对象,这个对象就是串口

ser.port = "COM1"   #串口的COM口
ser.baudrate  = 115200 #串口的波特率
ser.bytesize = FIVEBITS #数据位为8

ser.open() #打开串口

input("回车退出")

发送串口数据

串口发送的数据是 byte 类型的,所以需要进行数据类型转换
首先用串口助手打开 COM2 ,波特率设置为115200
然后执行发送串口数据代码,看一下串口助手接收的是否正确

# -*- coding: utf-8 -*-
#测试验证串口功能

from serial import *
import serial #导入pyserial库
ser = serial.Serial()  #实例化一个对象,这个对象就是串口
ser.port = "COM1"   #串口的COM口
ser.baudrate  = 115200 #串口的波特率
ser.bytesize = FIVEBITS #数据位为8
ser.open() #打开串口

Message = "零妖,测试串口发送" #即将发送出去的字符串
Send_Buf_Byte = Message #将字符串重新编码
Send_Buf_Byte = Send_Buf_Byte.encode(encoding="gbk")
ser.write(Send_Buf_Byte) #串口发送出去

ser.close() #关闭串口

input("数据发送完成!")

接收串口数据

串口接收数据前,需要先看一下数据接收缓冲区有几个数据
然后再将这个数据打印出来

# -*- coding: utf-8 -*-
#测试验证串口功能

from serial import *  #导入pyserial库
import serial

ser = serial.Serial()  #实例化一个对象,这个对象就是串口
ser.port = "COM1"   #串口的COM口
ser.baudrate  = 115200 #串口的波特率
ser.bytesize = 8 #数据位为8
ser.open() #打开串口
input("进入循环,开始接收串口数据")

while 1:
    Read_Buf_Count = ser.inWaiting() #获取读取缓冲区的字节数
    if Read_Buf_Count > 0:
        Read_a = ser.read(Read_Buf_Count) #读取出缓冲区所有数据
        print(Read_a) #打印出串口接收的数据

总结

微信公众号 偶尔更新

Tag:pyserial 串口
相关文章