python串口通信_python3脚本篇1-串口通讯脚本

前言

本文我们来学习Python软件包pyserial的使用,硬件采用wemos D1开发板,直接烧录串口章节代码即可,本文主要编写PC端Python脚本,完成脚本和外接串口设备通讯的功能。

一、基础知识

1.pyserial简介:

pyserial模块是python和串口设备通讯的package,串口是计算机上比较通用的通讯协议,串口设备通过USB插入电脑,python通过pyserial模块就可以完成和串口设备的通讯,其主要函数说明如下:

b03533fa828ba61e383c5e95b5c51d0c324e59b6.jpeg?token=9cf4e005c9b951c57d6cbcc00d55df57

2 安装pyserial

pip3 install pyserial

二、示例

1.程序

# encoding=utf-8

import serial

import threading

import datetime

import queue

from time import sleep

class Uart(object):

def __init__(self, port):

self.err = 0

self.run_status = 0

try:

self.uart = serial.Serial(port, 9600)

self.run_status = 1

print("start uart success")

except:

print("start uart error")

self.err = -1

def uart_recv_thread(self):

print("start uart_recv_thread")

while True:

try:

data = self.uart.readline()

data = "[uart==>pc] " + data.decode()

print(data)

sleep(0.05)

except Exception as e:

print("Error")

print(e)

def run(self):

threading.Thread(target=self.uart_recv_thread, daemon=True).start()

def close(self):

print("close uart")

self.uart.close()

def uart_send_data(self, data):

print("pc==>uart: ", data)

self.uart.write(data.encode())

if __name__ == "__main__":

uart = Uart("COM13")

if(-1 != uart.err):

uart.run()

while(True):

input_data = input("Please input:\r\n")

if ("quit" == input_data):

uart.close()

break

else:

uart.uart_send_data(input_data)

sleep(0.1)

print("exit uart")

程序中定义了一个Uart类,构造函数中实现打开串口设备功能,如果打开失败,Uart.err = -1,初始化对象后,调用Uart.run()即可开启接收线程,注意创建线程函数中daemon=True,表示设置接收线程为守护线程,当主线程退出后,该守护线程也退出,否则将成为僵尸线程一直存在。主线程中处理逻辑比较简单,当用户输入数据不是“quit”时候,直接发送给串口设备,否则关闭串口,退出主线程。

三、运行

1. 硬件连接

32fa828ba61ea8d36ca9e24f63fbba48271f58ee.jpeg?token=de17f5a5fd3242baf9e10972162e8835

注意wemos D1中需要编译烧录“wemos D1 arduino物联网开发板应用笔记2-串口通信”章节中代码,大家也可自行编写,其实现功能是当串口收到数据后,原路返回。

2. 运行python脚本

进入run.py根目录,终端(本文用VS Code下终端,也可在CMD命令窗口执行)输入python3 run.py即可运行程序,界面如下:

a1ec08fa513d2697770ebbe2a10a38fd4116d8ac.jpeg?token=21931f91f703ef1362a8112260396bb7

手动输入hello world,wemos收到数据后会立刻返回。

21a4462309f79052d9460d65ff025dcc7acbd50c.jpeg?token=1fbcd04b1e86f3b631251d6c9049776c

手动输入“quit”,退出主线程,此时守护线程也会退出。

5243fbf2b21193130683fb1991c986d193238d4b.jpeg?token=cb9cac353fdd47328b79b892b654bc66

四、结语

本节完,实际操作过程中需要注意的地方有如下几点:

(1) python相关

本文使用到了python线程、对象等内容,如果没有接触过这方面的朋友,最好看下网上相关教程,实际项目开发过程中不仅要使用串口接收线程,也要及时有效地对数据进行处理,本文是直接打印接收数据,比较好的方式是串口接收线程接收到数据后放置接收队列中,然后再做其他处理,感兴趣的朋友可自行尝试。

作者:小驿

寄语:事在人为,不去做你怎么知道行还是不行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python串口调试助手是一种用于调试串口通信的工具,可以帮助开发人员在开发和测试过程中轻松地对串口进行读写操作。它提供了一个用户友好的图形界面,让用户可以轻松设置串口参数、发送和接收数据。 Python串口调试工具的源码是指这个工具的程序代码,用户可以根据自己的需求进行定制和修改。这份源码通常由多个Python脚本组成,其中包括用于创建图形界面的代码、串口通信的代码以及其他必要的辅助代码。 在源码中,我们通常可以找到以下几个重要的部分: 1. 串口配置:这部分代码用于设置串口的端口号、波特率、数据位、校验位等参数。用户可以根据自己的需求进行相应的配置。 2. 数据发送和接收:这部分代码用于发送数据和接收串口数据。用户可以在界面上输入要发送的数据,并能实时看到串口接收到的数据。 3. 图形界面:这部分代码用于创建图形界面,并包括了用户对串口参数的配置、发送数据的输入框、接收数据的显示框等组件。 通过修改源码,用户可以根据自己的需求进行定制开发,添加其他功能,比如数据处理、协议解析等。此外,用户还可以根据源码学习串口通信的实现原理和相关编程知识,以便更好地理解和应用串口通信技术。 总而言之,Python串口调试助手和它的源码提供了一个方便且灵活的工具,用于开发人员进行串口通信的调试和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值