将keil中的数据绘成波形

来源:互联网 发布:查看8080端口被占用 编辑:程序博客网 时间:2024/05/21 21:33

      KEIL通过ULINK调试单片机时,可以通过keil的watch窗口观察数据,memory窗口定位到某一数组的内容,但是数字化的内容没有办法分析,无法观看波形,因此我们可以先把数据导出到本地。

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

       SAVE D:\DATA.HEX 0x2000002C,0x2000002C+3000

                SAVE:为命令
                D:\DATA.HEX: 保存路径
                0X20000ABC:需要导出数组开始地址
                0X20000ABC+1024:需要导出数组结束地址


(导出的文件类型为hex,数据格式为十六进制)


        使用sublime文本编辑器可以进行数据处理,非常方便。对内容全选之后,快捷键ctrl+shift+l加delete可以删除整列无用数。每隔几个字节进行换行操作,将多列十六进制数变成一列,

       复制粘贴进excel(输入为一列数据),在此列的下一列第一行输入“=”,之后用鼠标点击表格右上角SUM右边的小三角形,在下拉菜单中选择其它函数,再再函数分类中选“工程”,再在相应的右侧函数名中选HEXDEC(16进制转10进制函数),在出现的对话框中的Numer中用鼠标点击Number右侧的红箭头,之后用鼠标点击左侧待转换的单元格,然后按回车键,在返回刚才的对话框中的Place中输入相应的16进制数的位数(需估计一下要多少位即可)。将以上的函数复制到下一个单元格,并将相应的行数改成下一行的10进制单元格(如上一单元格为B1,这个则为B2)。其它的单元格类似,以此方法即可完成多个单元格转换成16进制的数。如用鼠标(出现“+”号)下拉复制更方便。

 

     使用MATLAB绘制波形图,假设  原始数据放在data.xlsx中,数据大小为从A到H有254行,8列。第一个sheet用参数1表示,语句为

        

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

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

                     L = length(tmp);x = 1:L;
          显示波形图:

        

                   I = plot(x,tmp);



原创粉丝点击