STM32驱动TOF250激光测距传感器
- TOF250介绍
-
- TOF250引脚说明和STM32的接线
-
- 程序
- 实验结果
- 总结
TOF250介绍
TOF250是一款基于TOF原理的单点测距雷达,采用940nm红外光源,提供了精确和可重复的远
距离测量用于高速自动对焦(AF).创新的TOF time-of-flight技术使该传感器性能独立于目标物体的反射率. TOF(time-of-flight)测量技术用低成本的CMOS工艺的SPAD (单光子雪崩二极管) 来实现它使测量结果准确,对环境光具有更高的抗干扰性 。支持UART和I2C通讯。
I2C通讯协议
I2C寄存器地址
注:主机在发送寄存器地址后要延时至少30uS给模块准备数据,否则I2C会出现异常。
TOF250引脚说明和STM32的接线
和STM32的接线
TOF250 | STM32 |
---|
5V | 5V |
GND | GND |
SDA | PB7 |
SCL | PB6 |
说明:
此次测试仅使用的是模拟IIC,方便理解
USB打印结果需要用到串口1的TX
程序
main.c
int main(void)
{
__I2C_Status_TypeDef i2CStatus;
User_I2C_Init();
delay_init();
uart_init(9600);
while(1)
{
i2CStatus = I2C_RecvBytes(TOF250_ID,TOF250_DIST_H, &RxData[0], 2,100);
if(i2CStatus == I2C_OK) {
Tof250_dist = RxData[1] + RxData[0]*256;
printf("%u cm\n",Tof250_dist);
}
delay_ms(100);
}
}
myiic.h
#define USER_I2C_SCL_PIN GPIO_Pin_6
#define USER_I2C_SDA_PIN GPIO_Pin_7
#define USER_I2C_GPIO GPIOB
#define SDA_IN() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}
#define IIC_SCL PBout(6)
#define IIC_SDA PBout(7)
#define READ_SDA PBin(7)
实验结果
准确率在5%
总结
需要具体例程的可以评论留下邮箱获取,TOF250官方CSDN是:https://blog.csdn.net/HCJ_Application/article/details/124058266
程序是参考官方的例程
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)