【MATLAB 串口调试+虚拟串口测试】
文章目录
- 前言
- 一、matlab 串口
- 二、测试串口
- 1.从系统中获取串口号
- 2.避免串口打开被占用
- 3. 安装虚拟串口
- 4. 打开串口助手和MATALB 进行测试
- 总结
前言
提示:这里可以添加本文要记录的大概内容:
项目需要:
提示:以下是本篇文章正文内容,下面案例可供参考
一、matlab 串口
二、测试串口
1.从系统中获取串口号
% 获取所有可用的串口信息
% ports = serialportlist;
%
% % 显示串口信息
% for i = 1:length(ports)
% fprintf('Port %d: %s\n', i, ports(i).PortName);
% % 如果需要更多信息,可以访问其他字段,如:
% % fprintf(' Description: %s\n', ports(i).Description);
% % fprintf(' Manufacturer: %s\n', ports(i).Manufacturer);
% end% 获取所有可用的串口信息
ports = serialportlist; % 检查是否有可用的串口
if isempty(ports) disp('没有检测到任何串口设备。');
else % 显示串口信息 for i = 1:length(ports) fprintf('Port %d: %s\n', i, ports(i)); end
end% 获取所有可用的串口端口号
portNames = {ports}; % 这是一个单元数组 % 将单元数组转换为字符串数组(如果需要)
portNamesStr = string(portNames); % 在 MATLAB R2016b 及更高版本中可用 % 显示端口号
disp(portNamesStr);% 创建并打开串口
serialObj = serialport(portNamesStr, 9600);
serialObj.DataBits = 8;
serialObj.StopBits = 1;
serialObj.Parity = 'none'; % open(serialObj); % 发送数据
dataToSend = 'Hello, Serial Port!';
% fwrite(serialObj, dataToSend, 'char'); % 等待一段时间以接收数据(假设设备有延迟)
pause(2); % 读取数据
numBytesToRead = 100;
% receivedData = fread(serialObj, numBytesToRead, 'char=>char');
receivedData = read(serialObj, numBytesToRead, 'char');
receivedDataStr = char(receivedData); % 显示接收到的数据
disp('Received Data:');
disp(receivedDataStr); % 关闭串口
% close(serialObj);
clear serialObj;
2.避免串口打开被占用
matlab 调试打开一次串口后,下次就会被占用,必须关闭matlab在开才行,所以为了避免这个问题,要容错
代码如下(示例):
% 定义串口参数
% 创建并打开串口 serialComName = 'COM4';
serialBaudrate = 9600;
serialDataBit = 8;
serialCheckBit = 'none';
serialStopBit = 1;% 尝试打开串口
trySerial_Obj=serialport(serialComName,serialBaudrate,"Parity",serialCheckBit,"DataBits",serialDataBit,"StopBits",serialStopBit,"Timeout",1);text1 = '串口打开成功';disp(text1)catch% 串口打开失败text = '串口打开失败';disp(text)% 删除串口delete(Serial_Obj);
end
完整程序
% 获取所有可用的串口信息
ports = serialportlist; % 检查是否有可用的串口
if isempty(ports) disp('没有检测到任何串口设备。');
else % 显示串口信息 for i = 1:length(ports) fprintf('Port %d: %s\n', i, ports(i)); end
end% 获取所有可用的串口端口号
portNames = {ports(2)}; % 这是一个单元数组 % 将单元数组转换为字符串数组(如果需要)
portNamesStr = string(portNames); % 在 MATLAB R2016b 及更高版本中可用 % 显示端口号
disp(portNamesStr);% 创建并打开串口 serialComName = portNamesStr;
serialBaudrate = 9600;
serialDataBit = 8;
serialCheckBit = 'none';
serialStopBit = 1;% 尝试打开串口
trySerial_Obj=serialport(serialComName,serialBaudrate,"Parity",serialCheckBit,"DataBits",serialDataBit,"StopBits",serialStopBit,"Timeout",1);text1 = '串口打开成功';disp(text1)catch% 串口打开失败text = '串口打开失败';disp(text)% 删除串口delete(Serial_Obj);
end% open(serialObj); % 发送数据
dataToSend = 'Hello, Serial Port!';
write(Serial_Obj, dataToSend, "uint8"); % 等待一段时间以接收数据(假设设备有延迟)
pause(2); % 读取数据
numBytesToRead = 100;
% receivedData = fread(serialObj, numBytesToRead, 'char=>char');
receivedData = read(Serial_Obj, numBytesToRead, 'char');
receivedDataStr = char(receivedData); % 显示接收到的数据
disp('Received Data:');
disp(receivedDataStr); % 关闭串口 clear Serial_Obj;
3. 安装虚拟串口
vspd.exe


一路点击安装




4. 打开串口助手和MATALB 进行测试


总结
为下一步guide做准备,连接下位机STM32 不成问题
学习使人快乐!
音乐使人愉悦!
日积月累使人充实和自信!
相关文章:
【MATLAB 串口调试+虚拟串口测试】
文章目录 前言一、matlab 串口二、测试串口1.从系统中获取串口号2.避免串口打开被占用3. 安装虚拟串口4. 打开串口助手和MATALB 进行测试 总结 前言 提示:这里可以添加本文要记录的大概内容: 项目需要: 提示:以下是本篇文章正文…...
mac 安装最新版nginx
1. clone最新版本源代码: git clone https://github.com/nginx/nginx.git 2. 下载PCRE 没有PCRE那我们就下,下载地址:https://sourceforge.net/projects/pcre/files/pcre/,笔者下载的pcre-8.45.zip,下载之后解压到ngi…...
极氪汽车困局:营销频繁车、产品力不足
“ 极氪汽车的“车上吃火锅”营销活动虽登上热搜,但因频繁忽视老用户和产品力不足的争议,并未赢得消费者好感,反而加剧负面印象。 ” 科技新知 原创 作者丨颜瞾 编辑丨蕨影 近日,背靠吉利集团的极氪…...
Icecream 与 Python 日志库及性能分析整合指南
简介 Icecream 是一个用于简化 Python 调试过程的库,它允许开发者轻松打印变量名和它们的值。Python 的 logging 库则提供了一个强大的日志记录系统,用于跟踪应用程序的运行情况。而性能分析则是评估代码执行效率的重要手段。本指南将介绍如何将 Icecre…...
请解读下面的程序:pat =re.compile(r‘\d+‘)res = pat.search(‘www.ddd996.com‘)res.group()
请解读下面的程序: pat re.compile(r\d) res pat.search(www.ddd996.com) res.group() 这段程序使用了正则表达式模块re来搜索字符串中的数字。首先,通过re.compile函数创建了一个正则表达式对象pat,该正则表达式是r\d,意味着匹…...
Fibonacci任意一位的值得算法
csDP写法 using System; class Program {static void Main(string[] args){Console.WriteLine("请输入一个非负整数:");// 读取用户输入while(true){string input Console.ReadLine();int n Convert.ToInt32(input);if (n < 0){Console.WriteLine(&…...
gbn,sr和tcp的区别
这是关于三种不同协议(GBN、SR、TCP)处理传输时序和丢包的行为比较。我们可以分别填充并解释它们的处理机制: GBN(Go-Back-N)协议: 类型发送方的计时器保存的是啥接收方收到失序的分组怎么办超时的时候发…...
FastGPT本地开发 之 通过Navicat管理MongoDB、PostgreSQL数据库
1. 背景 前期已经完成FastGPT的本地化部署工作,通过Docker启动FastGPT的相关容器即可运行。(共6个容器) 2.本地化开发 2.1 前置依赖 2.2 源码拉取 git clone gitgithub.com:labring/FastGPT.git2.3 数据库管理 本地化运行的FastGPT使用…...
hardhat部署智能合约
Hardhat安装 安装node 可以使用 nvm 安装node GitHub - nvm-sh/nvm: Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions 安装Hardhat 打开命令行工具,输入: mkdir hardhat-demo cd hardhat-demo npm i…...
界面控件DevExtreme中文教程 - 如何与Amazon S3和Azure Blob存储集成?
DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,…...
【ERROR】ubuntu source: not found
Ubuntu 24.04.1 LTS系统设置环境变量,执行 source ~/.bashrc出现错误: source command not found 解决方案:不需要处理( echo 以下你的环境变量,发现是生效的),ubantu系统 中 /bin/sh 通常链接到 dash,这…...
聚焦IOC容器刷新环节postProcessBeanFactory(BeanFactory后置处理)专项
目录 一、IOC容器的刷新环节快速回顾 二、postProcessBeanFactory源码展示分析 (一)模版方法postProcessBeanFactory (二)AnnotationConfigServletWebServerApplicationContext 调用父类的 postProcessBeanFactory 包扫描 …...
配置nginx服务通过ip访问多网站
过程概要 1.前提配置 关防火墙 关selinux 2.安装web服务程序nginx 3.查看nginx是否开启 4.为当前主机添加多地址(ip a) 5.自定义nginx配置文件通过多地址区分多网站 /etc/nginx/conf.d/test_ip.conf server { #标记为一个虚拟主机 } 6.根据配置…...
银河麒麟V10设置QT开发程序开机自启动
1、切换root用户: su root 2、进入/etc/xdg/autostart目录: cd /etc/xdg/autostart 3、创建一个test.desktop文件,文件名不一定命名为test,可以自己随意命名: touch test.desktop 4、完善test.desktop文件内容: …...
RabbitMQ高级特性详解
前言 RabbitMQ是一款广泛使用的开源消息队列软件,它基于AMQP(Advanced Message Queuing Protocol)标准实现。本文将带你深入了解RabbitMQ的一些高级特性,包括消息确认、死信队列、延迟队列、事务处理以及消息分发策略等ÿ…...
提升泛化能力的前沿方法:多任务学习在机器学习中的应用与实践
提升泛化能力的前沿方法:多任务学习在机器学习中的应用与实践 📋 目录 🧩 多任务学习的概念与动机🌐 多任务学习在自然语言处理中的应用案例🖼️ 多任务学习在计算机视觉中的应用案例⚙️ 项目实践:实现多…...
【小白学机器学习16】 概率论的世界观2
目录 一 从正态分布说起 1.1 正态分布是自然分布,是客观 1.2 万物不齐 1.3 中庸 1.4 动态平衡 正态分布,概率论都是一种世界观 一 从正态分布说起 1.1 正态分布是自然分布,是客观 世界是客观的,是不以人们的意志想法为转…...
洛谷 P9868 [NOIP2023] 词典
好久不写博客了,今天来水一篇 原题链接 初看此题在洛谷上的定位是黄题,实际上也并不是很简单。 其实主要就用到了贪心的思想,先说一下我在做题的时候是怎么想的吧。 先看了部分分,10分是很好拿的,再就分析题意&…...
跨浏览器免费书签管理系统
随着互联网信息的爆炸式增长,如何有效管理我们日常浏览中发现的重要网页,成为了每个重度互联网用户的需求。一个跨平台的书签管理网站能够帮助用户在不同设备之间无缝同步和管理书签。本文将分享如何使用 Python 和 SQLite 构建一个简单、易于维护的跨平…...
导出Excel的常用方法:从前端到后端的全面指南
导出Excel的常用方法:从前端到后端的全面指南 在现代Web应用中,导出数据为Excel文件是一个常见需求。无论是为了数据分析、记录保存还是简单的数据共享,Excel文件都因其广泛的兼容性和易用性而成为首选格式之一。本文将介绍几种常用的Excel导…...
Linux生产环境性能优化:内存优先策略,彻底规避Swap性能损耗
Linux生产环境性能优化:内存优先策略,彻底规避Swap性能损耗 前言 作为深耕企业级运维与安全领域的从业者,我们在Oracle/SAP HANA数据库、VMware虚拟化、K8s云原生集群、PrometheusELK监控体系的生产运维中,最常遇到的性能痛点之一…...
Grok API 实战指南:从申请到集成的开发者全攻略
1. Grok API 是什么?能做什么? 如果你是一名开发者,最近可能被 Grok API 刷屏了。简单来说,Grok API 是 xAI 公司提供的一套接口服务,允许开发者将强大的 Grok 大模型集成到自己的应用中。想象一下,你开发的…...
OpenClaw新手避坑指南:这10个Skills装不对,生产力直接归零(附安装命令)
OpenClaw新手避坑指南:这10个Skills装不对,生产力直接归零(附安装命令) 文章目录OpenClaw新手避坑指南:这10个Skills装不对,生产力直接归零(附安装命令)写在前面:为什么你…...
当企业拥有了创新的 “上帝视角”,会发生什么?
当企业拥有了创新的 “上帝视角”,会发生什么?--研企配 AI 大数据,打开中国企业产业洞察的上帝之窗在商业史上,所有的溃败都始于认知的闭环。14年前,诺基亚CEO约玛奥利拉在手机业务售出的发布会…...
Linux开发实战:Shell脚本与构建系统进阶指南
1. Linux开发者工具箱:从基础到进阶的实用指南作为一名在Linux环境下摸爬滚打多年的开发者,我深知高效工具链对生产力提升的重要性。这个系列文章最初只是我个人工作笔记的整理,后来逐渐发展成覆盖Linux开发全流程的实用指南。不同于教科书式…...
隐私优先方案:OpenClaw+本地化Qwen3.5-9B处理敏感数据
隐私优先方案:OpenClaw本地化Qwen3.5-9B处理敏感数据 1. 为什么我们需要隐私优先的AI方案 去年我在帮一家诊所做数字化改造时,遇到了一个棘手问题:他们需要自动化处理患者病历,但又担心使用云端AI服务会导致数据泄露。这让我意识…...
创意随笔:智能转录便携终端
创意随笔|智能转录便携终端 项目构想 核心亮点 以独立麦克风拾音为核心入口,实现全链路闭环实时翻译 从收音、ASR 识别、翻译、TTS 合成到语音播放/耳机输出,全程不依赖手机或电脑算力,自成一套完整翻译系统,真正做到端…...
STM32开发基础与高级应用全解析
1. STM32入门基础概念解析对于刚接触STM32的开发者来说,首先需要理解一些基础概念和架构特点。STM32是基于ARM Cortex-M内核的32位微控制器,与传统的51单片机相比,在性能、外设丰富度和开发方式上都有显著差异。1.1 时钟系统架构STM32的时钟树…...
基于SpringBoot + Vue的莱元元电商数据分析系统(双端 + 数据可视化大屏)
文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 💛博主介绍&#…...
怎样评估数据化管理?数据化管理如何持续改进?
在数据这个行当工作了这么多年,我经常会和不同公司的朋友聊天。大家刚开始做数据化管理时总是干劲十足,买工具、建报表、做大屏。但一两年后,常常陷入一种困惑:钱花了,屏挂了,但感觉业务还是老样子。这时候…...
