
标准版
VL53L1激光测距
7.5k
0
0
3
简介
已经打板验证,此模块是ST公司的长距离测距传感器模块,新一代长距离测距飞行时间激光传感器 基于 ST 的 FlightSense™ 技术,超小功率,工作电流微安级别。
简介:已经打板验证,此模块是ST公司的长距离测距传感器模块,新一代长距离测距飞行时间激光传感器 基于 ST 的 FlightSense™ 技术,超小功率,工作电流微安级别。开源协议
:GPL 3.0
创建时间:2021-07-10 15:31:55更新时间:2021-07-21 11:09:36
描述
VL53L1X不同于VL53L0X模块,此模块测算距离四米以内,可以给它加一个模子,增加它的性能,IIC接口,精度较好,但是比较难以焊接,对大家的焊接要求比较高。
模拟IIC写法如下:
uint8_t VL_IIC_Write_1Byte(uint8_t SlaveAddress, uint16_t REG_Address, uint8_t REG_data)
{
IIC_start();
IIC_Send_Byte(SlaveAddress );
if (IIC_wait_ack())
{
IIC_stop(); //释放总线
return 1; //没应答则退出
}
IIC_Send_Byte(REG_Address >> 8);
if (IIC_wait_ack()) //等待ACK
{
IIC_stop();
return 1;
}
IIC_Send_Byte(REG_Address & 0x00ff);
if (IIC_wait_ack()) //等待ACK
{
IIC_stop();
return 1;
}
delay_ms(1);
IIC_Send_Byte(REG_data);
if (IIC_wait_ack()) //等待ACK
{
IIC_stop();
return 1;
}
IIC_stop();
return 0;
}
uint8_t VL_IIC_Read_1Byte(uint8_t SlaveAddress, uint16_t REG_Address, uint8_t *REG_data)
{
IIC_start();
IIC_Send_Byte(SlaveAddress ); //发写命令
if (IIC_wait_ack())
{
IIC_stop(); //释放总线
return 1; //没应答则退出
}
IIC_Send_Byte(REG_Address >> 8);
if (IIC_wait_ack())
{
IIC_stop(); //释放总线
return 1; //没应答则退出
}
IIC_Send_Byte(REG_Address & 0x00ff);
if (IIC_wait_ack())
{
IIC_stop(); //释放总线
return 1; //没应答则退出
}
delay_ms(1);
IIC_start();
IIC_Send_Byte(SlaveAddress | 0x01); //发读命令
if (IIC_wait_ack())
{
IIC_stop(); //释放总线
return 1; //没应答则退出
}
*REG_data = IIC_Read_Byte(0);
IIC_stop();
return 0;
}
测试代码:
uint8_t VL_Init(void)
{
uint8_t res;
IIC_Init();
VL_IIC_Read_1Byte(VL_ADDR, module_type, &res);
if (res == 0xCC) //器件ID正确
{
UART_printf(UART0_BASE, "SUCCESS!\n");
return 1;
}
else
{
UART_printf(UART0_BASE, "failed!\n");
}
return 0;
}
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程添加到专辑
0
0
分享
侵权投诉
工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论