很多人在买回来激光雷达TFmini模块后却束手无策,有的人不知道怎么接线,有的人不知道怎么获取数据,有的人照着官方文档也得不出结果。本文就官方文档以及个人使用经验总结出TFmini如何在STM32上获取距离等测量数值。
本文要求基础:基本阅读能力,键盘敲打能力,单片机基础知识,C语言基础知识
软件配备:KEIL5,CUBEMX
硬件配备:激光雷达TFmini,任一STM32单片机,杜邦线(最少三根)
TFmini是一款小型激光雷达模块。主要实现实时、无接触式的距离测量功能,具有测量准确、稳定、高速的特点。
1. 测距原理
TFmini基于TOF(Time of Flight)即飞行时间原理。具体为产品周期性地向外发出近红外光调制波,调制波遇事物后反射。产品通过测量调制波往返相位差,得到飞行时间,再计算出产品与被测目标之间的相对距离。
2. 线序连接
将各引脚对应STM32各引脚连接好即可。可自行延长连接线,为保证数据的有效传输,建议自行焊接的连接线长度不大于1米。
3. 数据输出格式
每个数据包为9Byte。包含距离信息(Dist)、信号强度信息(Strength)、测距档位(Mode)、数据校验字节(CheckSum)等。数据格式为16进制(HEX)。
4. TFmini在STM32上的使用
1. STM32初始化配置
在本例子中我们需要初始化USART1和USART2。
2. 将激光雷达输出数据信息转化为距离
因为我们使用的是USART2串口接收数据,所以我们先使能串口2的接收中断。
HAL_UART_Receive_IT(&huart2,uart,1);
然后设置一些需要用到的量值。
int dist=99;
int check;
int count=10000;
int strength;
uint8_t uart[9];
const int HEADER=