TI毫米波雷达开发——High Accuracy Demo 串口数据接收及TLV协议解析 matlab 源码

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 协议解析功能演示

文件结构

TI毫米波雷达开发——High Accuracy Demo 串口数据接收及TLV协议解析 matlab 源码_第1张图片

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.
    end
    comportnum_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

你可能感兴趣的:(matlab,开发语言)