TI毫米波雷达开发——串口数据接收及TLV协议解析 matlab 源码
- 前置基础
- 源代码功能说明
- 功能演示视频
- 文件结构
- 01.bin / 02.bin
- ParseData.m
- read_file_and_plot_object_location.m
- read_serial_port_and_plot_object_location.m
- 函数解析
- configureSport(comportSnum)
- readUartCallbackFcn(sphandle, 0);
- 缓冲区控制
- TLV协议解析
- Magic Word 搜索及确认
- TLV Header 解析
- TLV Body 解析
- 协议解析
- 数据处理函数及绘图
- 源代码
前置基础
需熟悉TLV 协议 并对TI 基本的 TLV 输出套路有基本的概念。
源代码功能说明
一个使用matlab对6843 High Accuracy Demo 进行数据解析的Demo Project。
适用于TI 毫米波雷达 TLV 协议架构解析的Matlab上位机代码走读博客。
功能演示视频
Matlab mmWave TLV 协议解析功能演示
文件结构
01.bin / 02.bin
通过串口捕获到的原始数据保存在当前bin文件中。
ParseData.m
函数执行入口
read_file_and_plot_object_location.m
读取bin文件并且绘图
read_serial_port_and_plot_object_location.m
读取串口并保存数据
函数解析
configureSport(comportSnum)
配置串口
% 配置串口号及波特率。
% 串口接收的数据存在InputBufferSize中。
function [sphandle] = configureSport(comportSnum,BaudRate)global BYTES_AVAILABLE_FCN_CNT;if ~isempty(instrfind('Type','serial'))disp('Serial port(s) already open. Re-initializing...');delete(instrfind('Type','serial')); % delete open serial ports.endcomportnum_str = ['COM' num2str(comportSnum)];sphandle = serial(comportnum_str,'BaudRate',BaudRate);set(sphandle,'InputBufferSize', 2^20);set(sphandle,'Timeout',10);set(sphandle,'ErrorFcn',@dispError);set(sphandle,'BytesAvailableFcnMode','byte');set(sphandle,'BytesAvailableFcnCount', 2^20+1);%BYTES_AVAILABLE_FCN_CNT);set(sphandle,'BytesAvailableFcn',@readUartCallbackFcn);fopen(sphandle);
return
readUartCallbackFcn(sphandle, 0);
串口数据接收并放入缓冲区并控制
function [] = readUartCallbackFcn(obj, event)
global bytevecAcc;
global bytevecAccLen;
global readUartFcnCntr;
global BYTES_AVAILABLE_FLAG
global BYTE_VEC_ACC_MAX_SIZE
global EX