本文编辑:调皮哥的小助理
本文题为自问自答,主要是为了帮助大家解决一个问题,避免大家百度搜索不到答案,而且我喜欢用知乎回答问题,所以在知乎自问自答,这样大家在百度搜索的时候也能够检索到知乎的回答。
原问题,即:TI毫米波雷达 IWR1642串口接收的4个字节数据如何解析为距离的?
比如说串口拿到一个16进制的数据,一共四个字节,这四个自己在数据协议里面是代表距离的。
那么我们如何计算呢?
我先附上MATLAB代码:
clc;
clear all;
close all;
%% 调皮连续波
Data_hex=textread(‘data1.txt’,‘%s’)';%读出采集的数据
Data_dec=hex2dec(Data_hex);
Range = typecast(uint8(Data_dec), ‘single’);
data1.txt是存储的四个自己的数据,通过MATLAB导进来之后,还是字符,我们通过函数转成10进制数,然后通过 typecast(uint8(Data_dec), ‘single’); ,就解算除了距离,结果如下:
所以,上述的“5B EC D6 3E”,就表示为0.4198米的距离。
具体背后是什么逻辑,大家详细看MATLAB中的函数帮助就明白了。