(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.ui

第二步:處理數據

由於KEIL導出的數據是hex386格式,而且轉換後的數據也是不常見的小端模式,須要處理成常見的數據,這兒推薦使用sublime文本編輯器的列編輯快捷鍵,它能夠很方便的進行數據列處理。
其快捷鍵爲:Ctrl+A 而後 ctrl+shift+l,最後就能夠經過shift+'<-'鍵進行復制、粘貼和移動了。調試

第三步:把十六進制數據轉換成十進制數據

到此爲止,處理的數據都是十六進制,所以須要使用xls轉換成十進制數據,須要使用xls自帶函數HEX2DECcode

第四步:使用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原始數據到波形圖的顯示。

相關文章
相關標籤/搜索