matlab解析单片机发送数据的一种简单方法
matlab解析单片机发送数据的一种简单方法
经常使用单片机的同学,应该会经常面对这样一种情况,那就是对单片机采回的某些数据绘图、再处理等应用。大家经常用的两款软件,比如匿名的地面站,它通过固定的数据通讯协议,将数据从下位机传入上位机,上位机根据协议格式对数据解析,反之也一样。另外一种便是以UchartLv2为代表的文本分析类。在单片机内通过printf将数据转换为文本打印出,根据文本数据的前缀,例如“A123”这样的格式,以“A”索引数据,去掉A,将数字部分由文本转换为数据类型。很难说二者谁更加优秀,如果是电脑与单片机间存在频繁的数据交换,那么匿名的方式更加的稳定高效,因为其数据协议在单片机中更容易解析。而只需要单片机单方面上传数据给电脑时UchartLv2是更简单,更高效,更加轻量的。
所以本文章也主要讲述单片机大方面大量数据上传给电脑时,如何使用matlab对其进行解析。
首先在单片机中,按照pritnf(“A%d\r\n”,x)这样的格式将你希望发送的数据通过串口发送到电脑,通过串口助手查看,并将文本保存至一个.txt文档中(有的串口助手能直接保存为文档,有的需要你在接收文本框中将其复制粘贴进.txt中)。而后代码如下
// An highlighted block
clear;
clf;
[init]=textread('Chaser_data.txt',' %s ',100000);%读取.txt文件,将文本转换为cell
a=1;
b=1;
c=1;
d=1;
e=1;
%将文本转化为double型
for x=1:size(init)init_data=init{x,1};%从cell中提取出一个,该数据类型为char数组,对其进行解析if init_data(1,1)=='A'%查看首字母是否为需要的if ~isnan(str2double(init_data(1,2:length(init_data))))%对除首字母之外的char字符进行转换为double类型,若转化出NAN,即源数据有误,那么便舍弃。A_ADC(1,a)=str2double(init_data(1,2:length(init_data)));%若无误,则将其复制到某个你规定的矩阵中。a=a+1;endendif init_data(1,1)=='B'if ~isnan(str2double(init_data(1,2:length(init_data))))B_ADC(1,b)=str2double(init_data(1,2:length(init_data)));b=b+1;endendif init_data(1,1)=='C'if ~isnan(str2double(init_data(1,2:length(init_data))))C_ADC(1,c)=str2double(init_data(1,2:length(init_data)));c=c+1;endendif init_data(1,1)=='E'if ~isnan(str2double(init_data(1,2:length(init_data))))FMR_ADC(1,e)=str2double(init_data(1,2:length(init_data)));e=e+1;endend
end
以上列举了多个数据的共同解析,当然你也可以用诸如“ABCD”这样更长的字符串作为前缀,只是需要改一些地方即可
for x=1:size(init)%讲文本转化为double型init_data=init{x,1};if length(init_data)>4%确定该char数组的长度超过你前缀的长度,否则在进行后续的计算时可能会报超出数组索引的错误if init_data(1,1:4)=="ABCD"if ~isnan(str2double(init_data(1,5:length(init_data))))A(1,a)=str2double(init_data(1,5:length(init_data)));a=a+1;endendendend
以上便是一个简单的文本数据进行解析转换的简单示例,你可以用解析出的数据,做任何你想做的事。
matlab解析单片机发送数据的一种简单方法相关推荐
- 【Python使用】Python解析JSON数据的基本方法/用MATLAB解析json格式数据
一 JSON数据格式介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON建构于两种结构:json是Javascript中的对象和数组中的对象, ...
- discard connection丢失数据_python kafka 生产者发送数据的三种方式
python kafka 生产者发送数据的三种方式 发送方式 同步发送 发送数据耗时最长 有发送数据的状态,不会丢失数据,数据可靠性高 以同步的方式发送消息时,一条一条的发送,对每条消息返回的结果判断 ...
- php xml对象解析_php解析xml 的四种简单方法(附实例)
XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...
- 保护光盘数据的八种加密方法
保护光盘数据的八种加密方法 为了防止盗版软件对软件市场的侵害,越来越多的软件商使用加密方法来保护自己的软件.尽管目前加密光盘的方法有很多种,但其主要原理是利用特殊的光盘母盘上的某些特征信息是不可再现的 ...
- 51单片机有几个通用io口_51单片机IO口的四种使用方法
原标题:51单片机IO口的四种使用方法 传统51单片机IO接口只可以作为标准双向IO接口,如果用其来驱动LED只能用灌电流的方式或是用三极管外扩驱动电路. 灌电流方式 LED正极接VCC,负极接IO口 ...
- 系统检测到您正在使用网页抓取工具访问_从网站抓取数据的3种最佳方法
halo,大家好,我是特仑苏,今天呢给大家分享一些Python从网站抓取数据的一些方法,希望可以给大家带来一些帮助! 原作者:Octoparse团队 原出处:作品文(从网站抓取数据的3种最佳方法)/网 ...
- 恢复 iPhone 和 iPad 数据的 10 种简单工具
它发生了.. 有时您需要从您的手机或平板设备恢复重要数据. 许多人已经开始将重要文件存储在手机上,因为他们几乎可以在任何情况下随时随地轻松访问数据. 从技术上讲,您会在几分之一秒内丢失所有存储的信息. ...
- 调优您的 LAMP 应用程序的 5 种简单方法
John Mertic, 软件工程师, SugarCRM [url=]简介[/url] Wikipedia.Facebook 和 Yahoo! 等主要 web 属性使用 LAMP 架构来为每天数百万的 ...
- 访问Windows 11恢复环境的5种简单方法
问Windows 11恢复环境的5种简单方法 原文地址:我使用的第二个访问Windows 11恢复环境的5种简单方法 Windows 11恢复环境可以帮助您排除故障.恢复或引导设备,但如何访问设备并运 ...
最新文章
- SQL实现分组查询取前几条记录
- [How TO]-python venv虚拟环境
- Java使用OpenCV实现人脸识别
- Nginx的Gzip和sendfile的共存问题
- 解决获取请求参数的乱码问题
- 带有示例的Python File readline()方法
- scala文件通过本地命令运行
- AES-encryptor
- android-微信sdk
- 支付宝是怎么炼成的?蚂蚁金融级研发效能实践解析
- CCTV-5在线直播 视频网 关注体育赛
- 77.【JavaWeb文件上传和邮件发送04】
- win11怎么设置电脑字体大小
- 【python数据分析】pandas数据合并
- PAC learning
- 【cf】Codeforces 题解等汇总
- tyvj p1004 滑雪
- Windows Server 2008 R2 安装Oracle 10g 提示“程序异常终止”问题
- Windows如何杀掉进程?
- 计算机强制关机原理,解决PC常见问题 篇十六:究竟如何关机才是正确的姿势---关于“按电源键强制关机对硬件无危害”的...
热门文章
- C++解角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。若输入自然数为1,则不需要运算,运算次数为1(用循环和递归分别实现)
- 梦幻之旅--地图编辑器开发
- 毕设-基于LoRa的智能农业大棚(二)
- 用HTML加CSS模仿的W3school的主页
- 10分钟在服务器上搭建WordPress
- POJO/DTO/DO/EO/VO/BO/PO/AO的含义和使用
- 微信聊天机器人-存储好友分享消息
- ctfshow-web363(SSTI)
- 若依管理系统(前后端分离版)-----创建三级菜单
- Docker安装emqx详解(配置SSL证书、开启WSS、鉴权)