【Python 常用脚本及命令系列 1.2 -- python 判断串口是否已经打开】


请阅读【嵌入式开发学习必备专栏】


文章目录

    • 判断串口是否打开

判断串口是否打开

要在Python中打印串口的波特率并检查特定的串口(例如COM19)是否已经打开,你可以使用pyserial库。这个库提供了跨平台的串口通信功能。首先,确保安装了pyserial:

pip install pyserial

然后,你可以使用以下代码来实现所需的功能:

import serial
from serial.tools import list_ports
import sys
# 检查特定的串口是否在系统的串口列表中
def check_port_exists(port_name):ports = list_ports.comports()for port in ports:if port.device == port_name:return Truereturn False
# 检查COM19是否已经打开
def check_port_open(port_name):if not check_port_exists(port_name):print(f"{port_name} does not exist on this system.")return Falsetry:# 尝试打开串口with serial.Serial(port_name) as ser:# 打印波特率print(f"Baudrate for {port_name} is {ser.baudrate}.")# 如果成功打开并关闭,表示串口未被占用return Falseexcept serial.SerialException:# 如果无法打开串口,可能是因为它已经被打开return True
port_name = 'COM19'
if check_port_open(port_name):print(f"{port_name} is already open.")sys.exit()  # 退出Python脚本
else:print(f"{port_name} is not open or does not exist.")

这段代码首先定义了两个函数check_port_existscheck_port_open

  • check_port_exists检查特定的串口是否存在于系统中。它通过列出所有可用的串口并检查是否有任何一个与指定的串口名称匹配来实现。
  • check_port_open尝试打开指定的串口来检查它是否已经被打开。如果串口已经被打开(即无法打开它因为它被另一个进程占用),函数将捕获一个serial.SerialException异常。

注意:串口通信特别依赖于操作系统和硬件配置,所以如果COM19不存在或无法以默认波特率打开,这段代码可能需要根据你的具体情况做相应调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/835708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python之异常机制处理

1.异常机制 1_1 try和except: 异常:程序无法继续执行了,例如:字符串和数字相加,除以0,对None进行操作 中断当前程序执行,然后打印出红字 Exception error 捕捉异常的方式:关键…

【数据分析】 JupyterNotebook安装及使用简介

各位大佬好 ,这里是阿川的博客 , 祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 在数据分析中,一般用Pycharm编辑代…

codeforces round 149 div2(a,b,c,d)

手速场&#xff0c;可惜我傻逼卡 c c c了 题目链接 A #include<bits/stdc.h>using namespace std;#define int long long #define PII pair<int,int>void solve() {int n,k;cin>>n>>k;if(n<k){cout<<1<<\n;cout<<n<<\n;}…

VSCode:设置顶部文件标签页滚动条的宽度

使用VSCode打开多个文件后&#xff0c;顶部的文件标签可以通过滚动条进行滚动&#xff0c;但是缺点是该滚动条太窄了&#xff0c;不好选择。 可以通过如下方法修改改滚动条的宽度&#xff1a; 1.点击设置 2.选择工作台->编辑管理->Title Scrollbar Sizing->Large 3.可…

书生浦语训练营第四次课作业

基础作业 环境配置 拷贝internlm开发机内的环境 studio-conda xtuner0.1.17# 激活环境 conda activate xtuner0.1.17 # 进入家目录 &#xff08;~的意思是 “当前用户的home路径”&#xff09; cd ~ # 创建版本文件夹并进入&#xff0c;以跟随本教程 mkdir -p /root/xtuner0…

无需关注---使用docker-compose部署你的springboot框架的java项目

version: ‘3’ services: springboot: image: openjdk:11-jre-slim ports: - “20221:20221” volumes: - ./2022.jar:/app/2022.jar working_dir: /app command: [“java”, “-Xmx256m”, “-Xms128m”, “-jar”, “2022.jar”] # 调整堆内存大小 restart: always environm…

专项技能训练五《云计算网络技术与应用》实训8-1:建立基于OpenvSwitch的GRE隧道

文章目录 建立基于OpenvSwitch的GRE隧道1. 使用VMware安装2个CentOS 7虚拟机&#xff0c;安装时记得都开启CPU虚拟化&#xff0c;第一台命名为“Docker”&#xff0c;第二台命名为“KVM”。2. 安装完虚拟机后&#xff0c;进入虚拟机&#xff0c;修改网络配置&#xff08;onboot…

进程间通信(二)

共享内存 当进程A和进程B有一块共享的内存空间时&#xff0c;这两个进程之间的数据交互就会变的很简单&#xff0c;只需要像读取自己内存空间中的元素一样去读取数据即可。实现共享内存进行数据交互的一般步骤&#xff1a; 创建/打开共享内存内存映射数据交换断开与共享内存的…

任务:单域,域树的搭建

一、单域&#xff1a; 搭建所需的系统&#xff1a;win2016 sever&#xff0c;win10 1.在创建域前&#xff0c;先设置静态ip 先查看win2016 sever的IP&#xff0c; ip&#xff1a;192.168.154.133 网关&#xff1a;192.168.154.2 DNS服务器&#xff1a;192.168.154.2 设置…

【nodejs 命令行交互神器 - inquirer.js】

需求 大家在开发时&#xff0c;有时需要从命令行读取用户的输入&#xff0c;或者让用户选择。在nodejs中&#xff0c;这个怎么实现? 原生实现 ❌ process.stdin.setEncoding(utf8);process.stdin.on(readable, () > {let chunk;// 使用循环确保我们读取所有的可用输入wh…

局域网内监控软件有哪些:五款好用的网络监控神器分享

面对员工这种现象怎么办&#xff1f; 监控电脑最有效&#xff01; 局域网监控软件&#xff0c;你值得拥有&#xff01; 要想轻松监控电脑&#xff0c;这几款局域网内监控软件不容错过&#xff01;&#xff01;&#xff01; 一、域智盾软件 是一款专注于企业终端安全管理的软…

vue 中el-select联动 清空后无法点击选择后一个el-select

el-select选择器赋值为空后无法选中回显 原因&#xff1a; 焦点问题 背景&#xff1a;我是做了监听&#xff0c;因为需求要求选择街道后联动文号与项目名称&#xff0c;一个街道对应多个个文号与项目名称&#xff0c;因此当街道变化&#xff0c;需要清空之前的文号与项目…

流水灯效果探索与实现

在嵌入式系统或微控制器项目中&#xff0c;LED流水灯是一种常见的实验项目&#xff0c;它不仅能够展示基本的GPIO&#xff08;通用输入输出&#xff09;控制&#xff0c;还能通过不同的模式增加趣味性。本文将探讨四种不同的流水灯效果&#xff0c;并通过代码示例展示如何实现它…

Node.js -- 会话控制

文章目录 1. 会话介绍2. cookie 相关操作2.1 cookie 设置2.2 删除 cookie2.3 获取cookie 3. session 相关操作4. cookie 和session 的区别5. 补充知识 -- CSRF跨站请求伪造6. token 1. 会话介绍 所谓会话控制就是对会话进行控制 HTTP是一种无状态的协议&#xff0c;它没有办法…

中职大数据专业介绍:大数据技术应用

近年来&#xff0c;人工智能在经济发展、社会进步、国际政治经济格局等方面已经产生重大而深远的影响。规划纲要对“十四五”及未来十余年我国人工智能的发展目标、核心技术突破、智能化转型与应用&#xff0c;以及保障措施等多个方面都作出了部署。 据2020年全国教育事业发展统…

100条常见的c语言代码汇总上篇2(类型转换错误,忽略返回值,浮点数精度问题,逻辑错误,指针操作错误)

11. 类型转换错误 在C语言中&#xff0c;不恰当的类型转换可能导致数据丢失或程序行为异常。特别是在涉及不同大小或符号的整数类型&#xff0c;或者整数与浮点数之间的转换时&#xff0c;要特别小心。 代码案例&#xff1a; #include <stdio.h> int main() {unsigned …

两重惊喜!奥特曼预告GPT-4和ChatGPT重大更新,Open AI要放大招

OpenAI在今天官宣13日&#xff08;下周一10点&#xff09;开启线上直播&#xff0c;将会展示全新的ChatGPT demo的演示以及GPT-4的重大更新&#xff01; OpenAI首席执行官Sam Altman在X上表示&#xff0c;这些的发布会&#xff0c;公司不会宣布下一代对话式人工智能GPT-5或人工…

ue引擎游戏开发笔记(37)——实现造成伤害

1.需求分析&#xff1a; 在游戏中已经能够射击&#xff0c;并且能得到实际的落点反馈&#xff0c;但本质上这种射击没有任何实际数值伤害&#xff0c;为射击添加实际的子弹伤害数值。 2.操作实现&#xff1a; 1.思路&#xff1a;ue本身函数FPointDamageEvent就可以解决&#x…

win11安装各银行的网银助手都无法打开,双击没反应?

大神贴 右键网银助手属性&#xff0c;在目标后面敲一下空格&#xff0c;输入**-runapp**&#xff0c;应用即可。 如图示例&#xff1a;

【HDFS】关于HDFS-17497:在commit block时更新quota

链接:https://github.com/apache/hadoop/pull/6765 Ticket标题:The number of bytes of the last committed block should be calculated into the file length。 HDFS里,一个在写入的文件可能包含多个commited状态的块。 但是计算文件大小的时候,最后一个commited block并…