STM32F103ZET6驱动TOF250激光测距传感器

文章介绍了如何使用STM32微控制器通过I2C协议驱动TOF250激光测距传感器,该传感器基于TOF技术,适用于高速自动对焦。文中详细阐述了I2C通讯协议、寄存器地址、传感器引脚与STM32的接线方法,并给出了程序示例,展示了读取距离值的过程。实验结果显示准确率为5%。
摘要由CSDN通过智能技术生成

TOF250介绍

在这里插入图片描述
TOF250是一款基于TOF原理的单点测距雷达,采用940nm红外光源,提供了精确和可重复的远
距离测量用于高速自动对焦(AF).创新的TOF time-of-flight技术使该传感器性能独立于目标物体的反射率. TOF(time-of-flight)测量技术用低成本的CMOS工艺的SPAD (单光子雪崩二极管) 来实现它使测量结果准确,对环境光具有更高的抗干扰性 。支持UART和I2C通讯。

I2C通讯协议

在这里插入图片描述

I2C寄存器地址

在这里插入图片描述
注:主机在发送寄存器地址后要延时至少30uS给模块准备数据,否则I2C会出现异常。

TOF250引脚说明和STM32的接线

在这里插入图片描述
在这里插入图片描述

和STM32的接线

TOF250STM32
5V5V
GNDGND
SDAPB7
SCLPB6

说明:

此次测试仅使用的是模拟IIC,方便理解
USB打印结果需要用到串口1的TX

程序

main.c

int main(void)
{
    //unsigned char y;
    __I2C_Status_TypeDef i2CStatus;
//    u16 len;                           //检测每次接收到的长度,方便字符串转整数的时候进行处理
    User_I2C_Init(); //IIC初始化
    delay_init();
    // NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

    /**************************************************************
    **TOF250串口通信协议:
    **波特率 : 9600
    **数据位 : 8
    **校验   : 无
    **停止位 : 1
    ****************************************************************/
    uart_init(9600);	 //串口初始化为115200
    while(1)
    {
        i2CStatus = I2C_RecvBytes(TOF250_ID,TOF250_DIST_H, &RxData[0], 2,100);    //通过IIC读取TOF250距离值信息
        if(i2CStatus == I2C_OK) {
            Tof250_dist = RxData[1] + RxData[0]*256;
            printf("%u cm\n",Tof250_dist);
        }
        delay_ms(100);                                      //延时100ms,TOF250默认更新速度10HZ
    }
}

myiic.h

#define USER_I2C_SCL_PIN  GPIO_Pin_6
#define USER_I2C_SDA_PIN  GPIO_Pin_7
#define USER_I2C_GPIO     GPIOB

//IO方向设置
 
#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}

//IO操作函数	 
#define IIC_SCL    PBout(6) //SCL
#define IIC_SDA    PBout(7) //SDA	 
#define READ_SDA   PBin(7)  //输入SDA 

实验结果

在这里插入图片描述
准确率在5%

总结

需要具体例程的可以评论留下邮箱获取,TOF250官方CSDN是:https://blog.csdn.net/HCJ_Application/article/details/124058266
程序是参考官方的例程

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值