手机app开发网站,网站建设排行榜,做网站优化就是发文章吗,小网站 收入串口开发 安装模块#xff1a;pyserial端口检查#xff1a;uartDevice自定义文件#xff1a;SerialMonitor.py导入自定义文件#xff1a;SerialMonitor.py延伸阅读 安装模块#xff1a;pyserial
Pyserial 是 Python 中使用串口通信的一个第三方库#xff0c;使用它可以方… 串口开发 安装模块pyserial端口检查uartDevice自定义文件SerialMonitor.py导入自定义文件SerialMonitor.py延伸阅读 安装模块pyserial
Pyserial 是 Python 中使用串口通信的一个第三方库使用它可以方便地与设备进行数据交互。
方法1 CMD指令
pip install pyserial方法2PyCharm Community Edition的工程界面搜索导入 详见【PyCharm Community Edition】基础 中的模块安装
端口检查uartDevice
获取串口相关信息名称属性等
import serial.tools.list_portswhile True:print(选择使用的串口通道号)port_list list(serial.tools.list_ports.comports())#获取串口列表print(可用的COM端口:)portNames []for i, p in enumerate(port_list): #枚举串口列表里面的信息便于提示打印portNames.append(p.name)print(%d. %s%(i 1, p.name))print(p)#等待外界选择端口序号uartDevice input().strip() #strip()作用是输入字符串时删除字符串左右两端的空格’ ‘、换行符’\n’、制表符’\t’等print(uartDevice)try:uartDevice int(uartDevice) #将uartDevice转换成十进制if uartDevice len(portNames) and uartDevice 0:uartDevice portNames[uartDevice - 1] #通过数值找出对应的端口名称比如COM5breakelse:print(请选择正确的串口通道号)except:print(请选择正确的串口通道号)#这里最终得到uartDevice 的端口名称,比如COM5自定义文件SerialMonitor.py
便于自己使用可以聚合开发自己的串口服务函数。
# cython: language_level3
from serial import *
import timeclass SerialMonitor():def __init__(self, port: str):#指定带入参数port类型为字符串self.port portself.pwd mcu.v4#与下位机通信时的密码字符def open(self):print(打开端口%s % (self.port))self.serial Serial(self.port, 460800, timeout5)def close(self):self.serial.close()def setup(self):self.write()time.sleep(5)self.write(self.pwd)#发送解密指令time.sleep(0.2)self.write(self.pwd)time.sleep(0.2)# result str(self.serial.read())# # command error# while len(result) 0:# self.write(Noch)# time.sleep(0.2)# result str(self.read())# print(f接收的反馈内容{result})print(解密成功)self.write(log ALL 0)#发送“log ALL 0”字符串result str(self.serial.read())# command errorwhile [ALL] - [OFF] not in result:#查询想要的字符串下位机反馈“[ALL] - [OFF]”print(Resp Data is not expected:%s % result, resend cmd:log ALL 0)time.sleep(1)self.write(self.pwd)time.sleep(0.2)self.write(log ALL 0)time.sleep(0.05)result str(self.read())#读取串口获取的数据转换成字符串print(f接收的反馈内容{result})print(屏蔽所有的log成功)self.read()def read(self):return self.serial.read_all()def write(self, content: str ):content %s\r\n % (content)content bytes(content.encode(ascii))# content content.encode(ascii)self.serial.write(content)def flush(self):self.serial.flushInput()self.serial.flushOutput()
导入自定义文件SerialMonitor.py
打开串口并发送相关数据
from SerialMonitor import *serial SerialMonitor(uartDevice)#注意uartDevice必须时端口名称比如COM5
print(打开串口)
serial.open()#打开串口
serial.setup()#里面有一些列自定义操作延伸阅读
神奇的python六之python的串口操作pyserial 推荐5星
serial serial.Serial(‘COM1’, 115200) 打开COM1并设置波特率为115200COM1只适用于Windows
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() 中止当前输出并清除输出缓冲区数据