将keil中的数据用MATLAB绘成波形

来源:互联网 发布:车床倒角编程 编辑:程序博客网 时间:2024/05/29 18:24

    使用KEIL通过ST-LINK调试STM32单片机时,可以通过keil的watch窗口观察数组或某一变量的值,但是数字化的内容没有准确分析数据之间的联系,也无法观看波形,因此我们可以先把数据导出到本地再通过MATLAB绘制图形。具体步骤如下:

    1、打开keil的command窗口,在其中输入如下命令:

       save d:\data.txt 0x2000101C,0x2000101C+600

       其中:save:保存命令
             d:\data.txt: 保存路径(d盘data.txt文件
             0x2000101C:需要导出数组的开始地址
             600:需要导出元素个数

    注意:导出的文件类型为txt,数据格式为十六进制


    2、sublime软件是一款强大的文本编辑器,使用sublime进行数据处理,非常方便。将第一步得到的数据复制到sublime中,首先对内容全选(ctrl+A);其次,快捷键ctrl+shift+l加delete可以删除整列无用数;最后,每隔几个字节进行换行操作,将多列十六进制数变成一列


    3、将第二步得到的数据复制到excel输入为一列数据),在此列的下一列的第一行输入“=”,再输入十六进制转十进制函数“HEX2DEC(number)”,其中number为左侧待转换的单元格。最后用鼠标(出现“+”号)下拉复制更方便,即可将所有十六进制转化成十进制。

 

    4、使用MATLAB绘制波形图,假设原始数据放在data.xlsx中,数据大小为从A1到A600有600个。参数1表示excel中sheet1,语句为   

                    data = xlsread('data.xlsx',1,'A1:A600')

       把多维数组转化为一维数组并保存在tmp中:
                    tmp = data(:);
       获取数据长度:

                     L = length(tmp);x = 1:L;

       显示波形图:      

                   I = plot(x,tmp);
 整体MATLAB代码:

       data=xlsread('data.xlsx',1,'A1:A600');
tmp=data(:);
 L=length(tmp);
  x=1:L;
I=plot(x,tmp);

原创粉丝点击