资源简介
使用Matlab解析HEX386格式数据.zip

代码片段和文件信息
%function d=HEX386_TO_DEC()
%使用MDK输出内存数据后,通过本脚本读入并绘图
%假设内存中有数组 short Data[2500]可以通过以下命令导出HEX文件
%输出命令 save e:\d2500.hex Data&Data[2499]
%应用时需要修改导出的数据宽度和文件路径
clear;
file_path=[];
hex_file_name=[];
pow_2_8=2^8;
pow_2_16=2^16;
pow_2_32=2^32;
% 定义读取文件的数据宽度
% 1:BYTE 8bit
% 2:short 16bit
% 4:long 32bit
% Float_Type_Flag=1 表示读取的是浮点数据(只能为单精度)
% 若读取浮点数标志有效,则数据位宽度强制为4,下方的配置无效
% Sign_Flag=1 表示导入的数据为有符号数
% Float_Type_Flag有效时 Data_Width无作用,Sign_Flag无作用
%%%%%%%%%%%%%% 需要改动的地方 %%%%%%%%%%%%%%
Data_Width=4;
Float_Type_Flag=1;
Sign_Flag =1;
%file_path=‘e:\d2500.hex‘;
[hex_file_name hex_path_name]=uigetfile({‘*.hex;*.bin;*.txt‘}‘选择HEX文件‘);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 如果选择了文件则合成完整路径
if hex_file_name
file_path=[hex_path_name hex_file_name];
end
%配置浮点数数据宽度强制为4(单精度)
if Float_Type_Flag
Data_Width=4;
end
Read_Data=importdata(file_path‘ ‘);
char_data=char(Read_Data);
[rowcolumn]=size(char_data);
d=zeros(1(column-11)/(Data_Width*2)*(row-4));
counter=0;
error_flag=0;
for i=2:row
if strcmp(char_data(i8:9) ‘01‘)
break;
end
len = hex2dec(char_data(i2:3));
switch Data_Width
case 1
for i2=1:len
val=(hex2dec(char_data(i(9+(i2-1)*2):(9+i2*2))));
if and(Sign_Flagbitshift(val-7))
val =val-pow_2_8;
end
counter=counter+1;
d(1counter)=val;
end
case 2
len=len/2;
for i2=1:len
val=(hex2dec(char_data(i[(12+(i2-1)*4):(9+i2*4) ...
(10+(i2-1)*4):(7+i2*4)])));
if and(Sign_Flagbitshift(val-15))
val =val-pow_2_16;
end
counter=counter+1;
d(1counter)=val;
end
case 4
len=len/4;
for i2=1:len
Long_Data_str=char_data(i[(10+i2*8-2):(10+i2*8-1) (10+i2*8-4)...
:(10+i2*8-3) (10+i2*8-6):(10+i2*8-5) (10+i2*8-8):(10+i2*8-7)] );
val=(hex2dec(Long_Data_str));
if Float_Type_Flag
sign= bitshift(val-31);
m = bitshift(val-23)-127-bitshift(sign8);
last= (bitand(val2^23-1)+2^23);
val =(2^m)*((-1)^sign)*last/(2^23);
elseif and(Sign_Flagbitshift(val-31))
val =val-pow_2_32;
end
counter=counter+1;
d(1counter)=val;
end
otherwise
error_flag=1;
end
end
if error_flag
disp(‘数据位宽错误!‘);
else
save(‘d.mat‘‘d‘);
plot(d‘b.‘)grid on
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 28149 2019-07-10 22:29 sign_f2500.hex
文件 28149 2019-07-10 22:29 sign_l2500.hex
文件 28170 2019-07-10 22:29 sign_l2500000.hex
文件 14097 2019-07-10 22:28 sign_s2500.hex
文件 606 2019-07-29 21:52 使用说明.txt
文件 2984 2019-07-10 23:20 Float_figure.m
- 上一篇:MATLAB环境下用BP神经网络进行数据分类
- 下一篇:模拟退火算法计算费马点
相关资源
- 《MATLAB仿真在现代通信中的应用》徐
- KECA1.m
- zw_支持向量机与朴素贝叶斯算法matl
- test1_mat.m
- Finnal6.m
- odefun1.m
-
飞控simuli
nk仿真.zip -
光伏发电最大功率点跟踪simuli
nk仿真 - MATLAB全球磁场绘图程序.zip
- MATLAB人脸识别考勤系统摄像头,记录
- MATLAB多方法车牌识别系统bp+模板+GUI
- 四旋翼MATLAB仿真文件实验报告.zip
-
4.1基于Simuli
nk的图像、视频处理.z -
Simuli
nk的低通数字滤波器的仿真分析 - matlabR2017b迅雷种子文件及安装教程.
- 最优化方法及其matlab程序实现.zip
- 5d5680a96365f0e9a0c7114890f97460.mobi
- 《全面详解LTE:MATLAB建模、仿真与实
- XXXXXXRobustControlDesignwithMATLAB.pdf
- matlab图像处理包括数据反演以及其他
- Matlab常用32种算法.zip
- 传感器网络节点定位算法matlab代码.
- 基于DCT变换和DFT变换的数字图像压缩
- 10900257雷达系统设计MATLAB仿真.pdf
- 神经网络、遗传算法、支持向量机、
- 《先进PID控制MATLAB仿真第3版》仿真程
- 雷达系统设计MATLAB仿真.pdf196612
- 滑模变结构控制MATLAB仿真(第1版)(
- [Matlab作品]matlab实现视频中动态目标跟
- zw_qq_15023225-7501331-S函数的BP神经网络
评论
共有 条评论