当前位置:首页 >> 编程语言 >> 【PyCharm Community Edition】:串口开发,t57

【PyCharm Community Edition】:串口开发,t57

0evadmin 编程语言 5
文件名:【PyCharm Community Edition】:串口开发,t57 【PyCharm Community Edition】:串口开发

串口开发 pyserial导入端口检查,获取串口名称:uartDevice自定义串口服务函数SerialMonitor.py导入SerialMonitor.py定义的接口,打开串口,并发送相关数据延伸阅读

pyserial导入 方法1: CMD指令 pip install pyserial 方法2:PyCharm 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()#输入字符串时删除字符串左右两端的空格’ ‘、换行符’\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_level=3from serial import *import timeclass SerialMonitor():def __init__(self, port: str):self.port = portself.pwd = "mcu.v4"#与下位机通信时的密码字符def open(self):print("打开端口%s" % (self.port))self.serial = Serial(self.port, 460800, timeout=5)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必须时端口名称,比如COM5print("打开串口")serial.open()#打开串口serial.setup()#里面有一些列自定义操作 延伸阅读 神奇的python(六)之python的串口操作(pyserial) 推荐:5星 serial = serial.Serial(‘COM1’, 115200) 打开COM1并设置波特率为115200,COM1只适用于Windowsprint 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() 中止当前输出并清除输出缓冲区数据
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接