(KEILv5)使用matlab绘制从KEIL memory导出的内存数据
使用matlab绘制从KEIL memory导出的内存数据
如标题,某些时候我们需要分析keil调试过程中的数据,比如从I2S、SPI、I2C或者UART获取到的波形数据,这些数据时数字流,通过逻辑分析仪是没有办法直观的观察其波形,因此,我们需要把数据导出来,通过合适的工具使数据可视化,比如一些规律的波形图。
下面我将提供一种方法供参考
高潮来了
第一步:导出数据到本地
KEIL通过ULINK调试STM32时,我们可以通过keil的memory窗口定位到某一数组的内容,但是数字化的内容没有办法分析,因此我们可以先把数据导出到本地。
比如如下数组
uint16_t DATA[1024];//内存地址为0x20000ABC
我们可以使用如下命令把他导出到本地并保存,需要打开keil的command窗口,在其中输入如下命令:
:SAVE D:\DATA.HEX 0X20000ABC,0X20000ABC+1024
SAVE:为命令
D:\DATA.HEX: 保存路径
0X20000ABC:需要导出数组开始地址
0X20000ABC+1024:需要导出数组结束地址
这样就可以导出数组数据到本地了,需要注意导出数据的格式是hex386.
第二步:处理数据
因为KEIL导出的数据是hex386格式,并且转换后的数据也是不常见的小端模式,需要处理成常见的数据,这儿推荐使用sublime文本编辑器的列编辑快捷键,它可以很方便的进行数据列处理。
其快捷键为:Ctrl+A 然后 ctrl+shift+l,最后就可以通过shift+'<-'键进行复制、粘贴和移动了。
第三步:把十六进制数据转换成十进制数据
到此为止,处理的数据都是十六进制,因此需要使用xls转换成十进制数据,需要使用xls自带函数HEX2DEC
第四步:使用MATLAB绘制波形图
为什么不用xls显示波形图呢?数据只有几行的话用xls很方便,但是如果数据量很大而且有几百上千行,你有xls处理将花费非常多的时间。因此用matlab更方便。
matlab首先需要导入数据:
data = xlsread('data.xlsx',1,'A1:H254')
原始数据放在data.xlsx中,数据大小为从A到H有254行,8列。参数1表示是第一个sheet.
tmp = data(:);
这一句是为了把多维数组转化为一维数组并保存在tmp中。
L = length(tmp);x = 1:L;
获取数据长度。
I = plot(x,tmp);
显示波形图。
以上即完成从keil原始数据到波形图的显示。
(KEILv5)使用matlab绘制从KEIL memory导出的内存数据的更多相关文章
- 用matlab绘制幂函数
用matlab绘制幂函数 下周轮到我做论文汇报了,刚好前两天看了网格水印的文章,就决定汇报前两天看到的那篇论文了.在准备ppt的过程中,绘制了一些幂函数,感觉matlab真的是很强大啊,可以绘制各种曲 ...
- 【MATLAB】用MATLAB绘制奥运五环
[MATLAB]用MATLAB绘制奥运五环 今天用MATLAB绘制了一个奥运五环,好吧,实际上是帮人做作业,嘿嘿. 贴代码: clear; clc; N = 1000; angle = linspac ...
- [ZZ] 用matlab绘制箭头
用matlab绘制箭头 http://npfeng900.blog.163.com/blog/static/14456108201221922944998/ 用matlab绘制箭头1 用matlab绘 ...
- Matlab绘制三维曲面(以二维高斯函数为例)
原文地址为:Matlab绘制三维曲面(以二维高斯函数为例) 寒假学习了一下Python下的NumPy和pymatlab,感觉不是很容易上手.来学校之后,决定继续看完数字图像处理一书.还是想按照上学期的 ...
- 用matlab绘制中国地图
reference:https://jingyan.baidu.com/article/870c6fc36fdacfb03ee4be58.html shp: http://muchong.com/ht ...
- matlab绘制心形函数
matlab 7.0 绘制二维.三维心形函数 又到周六,下周就要迎来春节小长假了,想想都有些激动.在外漂了一整年,总于可以回家和父母团聚了,还有吃好吃的...,哎呀~想想都流口水呢.不过先 ...
- 导出CCS3.3数据及使用matlab处理的方法
CCS3.3是一款DSP的集成开发环境(IDE).在做DSP开发时,为验证算法.经常须要使用matlab进行算法验证,验证算法就须要数据.因此,一种交互的方法是: 使用DSP开发板连接CCS 用CCS ...
- Matlab绘制子图subplot使用攻略
参考:https://jingyan.baidu.com/article/915fc414ad794b51394b20e1.html Matlab绘制子图subplot使用攻略 听语音 原创 | 浏览 ...
- 安卓android WebView Memory Leak WebView内存泄漏
Android WebView Memory Leak WebView内存泄漏 在这次开发过程中,需要用到webview展示一些界面,但是加载的页面如果有很多图片就会发现内存占用暴涨,并且在退出该界面 ...
随机推荐
- span设置padding无效
<span style="display:inline-block;padding-top:10px">测试<span> 给span加属性 display: ...
- stretchableImageWithLeftCapWidth气泡拉伸
- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCap ...
- 【Salvation】——怪物角色动画&主角碰撞死亡动画
写在前面:这个动画功能同样也是使用JavaScript编写脚本,在Unity3D游戏引擎的环境中实现,在怪物的角色动画中,很多与人物相同,这里不再重复. 一.设计敌人 拖一个精英sprite到层次面板 ...
- mycat 分页慢原理解析、mycat跨事务解惑、mycat注解调用存储过程分析
1结合Mycat日志,分析select * from travelrecord order by id limit100000,100 的运行过程,解释下当limit M,N中的M非常大的情况下.为什 ...
- eclipse中文件文件夹高速定位,打开文件所在文件夹,在资源管理器中查看
viewFile.bat (打开选中的文件获取目录) Explorer/e,/select,%1 viewjava.bat (打开选中的文件名称相应的.java文件) @echo off set ca ...
- fiddler不能监听 localhost和 127.0.0.1的问题 .
localhost/127.0.0.1的请求不会通过任何代理发送,fiddler也就无法截获. 解决方案 用 http://localhost. (locahost紧跟一个点号) 用 http://1 ...
- 浅谈对TDD的看法
程序猿对TDD这个词一定不陌生.近几年比較火.英文全称Test-Driven Development,測试驱动开发. 它要求在编写某个功能的代码之前先编写測试代码,然后仅仅编写使測试通过的功能代码,通 ...
- Allegro中解决鼠标放在走线上网络名、走线长度显示不出来的问题
一些PCB设计者在使用allegro时,由于一些误操作 导致当鼠标放在走线(cline)和网络(net)上面时,软件没有显示该走线的所属网络,或者相关的长度信息.本人经过help文档发现,以下方法可以 ...
- IPv4(四)子网和子网掩码
为了完成路由选择,每个数据链路(网络)都必须有一个惟一的地址: 另外,数据链路上的每台主机也必须有一个地址,这个地址不仅标识主机为一个网络成员,还可以把主机与网络上的其他主机区分开来. 粗放使用IPv ...
- android WebView详细使用方法(转)
1.最全面的Android Webview详解 2.最全面总结 Android WebView与 JS 的交互方式 3.你不知道的 Android WebView 使用漏洞 如果想保证登录状态,就插入 ...