0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STM32CUBEMX驱动TOF模块VL53l0x(2)----修改设备地址

嵌入式单片机MCU开发 来源:嵌入式单片机MCU开发 作者:嵌入式单片机MCU开 2023-12-01 15:46 次阅读

概述

本章主要介绍如何修改VL53L0X传感器I2C地址,并成功驱动设备以使用新的地址。VL53L0X是一种多功能、高性能的接近和环境光传感器,常用于测量物体与传感器之间的距离、检测物体的接近程度以及测量环境光强度等应用。
在某些情况下,可能需要在同一I2C总线上使用多个VL53L0X传感器,或与其他I2C设备共享总线资源。由于每个VL53L0X传感器具有默认的固定I2C地址,这可能导致地址冲突,从而阻碍多个传感器的同时使用。为了解决这个问题,可以通过修改传感器的I2C地址来避免冲突,并使其能够在同一总线上与其他设备共存。
修改VL53L0X传感器的I2C地址,通过配置传感器内部寄存器来修改I2C地址。将提供具体的寄存器配置值和步骤,确保能够成功更改传感器的地址。然后驱动新地址的VL53L0X传感器,使用新的I2C地址与VL53L0X传感器进行通信

最近在弄ST的课程,需要样片的可以加群申请:615061293 。

在这里插入图片描述

视频教学

[https://www.bilibili.com/video/BV1cm4y1N7HN/]

样品申请

[https://www.wjx.top/vm/OhcKxJk.aspx

源码下载

[https://download.csdn.net/download/qq_24312945/88332774]

修改设备地址

VL53L0X使用I²C总线进行通信。默认情况下,VL53L0X的7位地址为0x29。然而,为了避免地址冲突并允许多个传感器共享相同的I2C总线,用户可以通过向寄存器I2C_SLAVE_DEVICE_ADDRESS(寄存器地址为0x8A)写入自定义的7位地址来修改传感器的地址。
在这里插入图片描述

修改后如下所示。

// Public Methods //////////////////////////////////////////////////////////////

void VL53L0X_setAddress(uint8_t add,uint8_t new_addr)
{
  VL53L0X_WriteByte(add,I2C_SLAVE_DEVICE_ADDRESS, new_addr & 0x7F);

}

在VL53L0X.h文件,该文件包含了VL53L0X传感器的相关定义和配置。
在VL53L0X.h文件中,可以定义2个设备的地址常量,分别表示不同的传感器。例如,可以使用以下方式定义地址常量:

#define VL53L0X_DEFAULT_I2C_ADDR1 0x29  ///< The fixed I2C addres
#define VL53L0X_DEFAULT_I2C_ADDR2 0x30  ///< The fixed I2C addres

这里的地址值是根据实际需求和硬件连接情况选择的,确保每个设备具有唯一的地址。
通过使用定义的设备地址常量,可以轻松地管理和操作多个VL53L0X传感器。
首先使用VL53L0X_Init函数初始化传感器,接下来通过调用VL53L0X_setAddress函数来修改设备地址。这个函数需要两个参数:旧的设备地址(即初始的设备地址)和新的设备地址(你希望将传感器的地址修改为的值)。

/* USER CODE BEGIN 2 */
	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_RESET);	
	
			HAL_Delay(200);	

	if (!VL53L0X_Init(VL53L0X_DEFAULT_I2C_ADDR1,true))
  {
    printf("Failed to detect and initialize sensor!");
    while (1) {}
  }
/************修改VL53L0X_2地址为VL53L0X_DEFAULT_I2C_ADDR2(0x30)*********************/
	VL53L0X_setAddress(VL53L0X_DEFAULT_I2C_ADDR1,VL53L0X_DEFAULT_I2C_ADDR2);	
	
  /* USER CODE END 2 */

主程序

在主程序的while循环中,使用VL53L0X_readRangeSingleMillimeters函数从传感器读取距离数据。这个函数需要传入设备的新地址VL53L0X_DEFAULT_I2C_ADDR2作为参数。

/* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		L=VL53L0X_readRangeSingleMillimeters(VL53L0X_DEFAULT_I2C_ADDR2);
    	printf("L=%d",L);

		HAL_Delay(1000);			
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

测试结果

测试距离结果如下所示。

在这里插入图片描述

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2731

    浏览量

    47707
  • 地址
    +关注

    关注

    1

    文章

    32

    浏览量

    10810
  • TOF
    TOF
    +关注

    关注

    9

    文章

    485

    浏览量

    36451
  • stm32cubemx
    +关注

    关注

    5

    文章

    284

    浏览量

    14971
  • VL53L0X
    +关注

    关注

    0

    文章

    7

    浏览量

    2516
收藏 人收藏

    评论

    相关推荐

    基于STM32CUBEMX驱动TOF模块VL6180与VL6180X(3)----修改设备地址

    本章主要介绍如何修改VL6180X传感器的I2C地址,并成功驱动设备以使用新的
    的头像 发表于 12-01 14:30 706次阅读
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驱动</b><b class='flag-5'>TOF</b><b class='flag-5'>模块</b><b class='flag-5'>VL</b>6180与<b class='flag-5'>VL6180X</b>(3)----<b class='flag-5'>修改</b><b class='flag-5'>设备</b><b class='flag-5'>地址</b>

    基于STM32CUBEMX驱动TOF模块VL53l0x(1)----单模块距离获取的最佳实践

    VL53L0X是新一代飞行时间(ToF)激光测距模块(不同于传统技术),采用目前市场上最小的封装,无论目标反射率如何,都能提供精确的距离测量。它可以测量2m的绝对距离,为测距性能等级设
    的头像 发表于 12-01 15:45 2433次阅读
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驱动</b><b class='flag-5'>TOF</b><b class='flag-5'>模块</b><b class='flag-5'>VL53l0x</b>(1)----单<b class='flag-5'>模块</b>距离获取的最佳实践

    基于STM32CUBEMX驱动TOF模块VL53l0x(3)----驱动多个VL53L0X

    在本章中,我们将探讨如何同时驱动多个VL53L0X传感器进行距离测量。我们将介绍如何有效地管理多个传感器之间的通信和控制,以确保它们能够同时进行准确的距离测量。通过本章的学习,将能够了解如何利用多个VL53L0X传感器的优势,为
    的头像 发表于 12-01 15:47 1090次阅读
    基于<b class='flag-5'>STM32CUBEMX</b><b class='flag-5'>驱动</b><b class='flag-5'>TOF</b><b class='flag-5'>模块</b><b class='flag-5'>VL53l0x</b>(3)----<b class='flag-5'>驱动</b>多个<b class='flag-5'>VL53L0X</b>

    CW32模块使用 VL53L0X激光测距传感器

    上一代 VL6180X,新的器件将飞行时间测距长度扩展至 2 米,测量速度更快,能效更高。除此之外,为使集成度过程更加快捷方便, ST 公司为此也提供了 VL53L0X 软件 API(应用编程接口)以及完整的技术文档,通过主 I
    的头像 发表于 11-26 17:59 702次阅读
    CW32<b class='flag-5'>模块</b>使用 <b class='flag-5'>VL53L0X</b>激光测距传感器

    新一代ToF 激光测距模块VL53L0X

    ,所以回程距离的计算公式也很简单,即“光速” x “时间延迟”。VL53L0X 是新一代 ToF 激光测距模块,采用目前市场上最小型的封装,可基于各种目标物颜色和反射特性进行精确测距。
    发表于 04-06 14:03

    怎么使用VL53L0XSTM32L476 Nucleo64?

    嗨,我是一个新手试图通过将它们连接到STM32L476核64板来研究它们。目前我正在尝试使用飞行时间传感器VL53L0X分线板,通过在核64上的I2C引脚连接它。此外,我正在使用系统工作台来运行生成
    发表于 10-18 17:13

    VL53L0X可以永久更改I2C地址吗?

    大家好!关于VL53L0X飞行时间测距和手势检测传感器的简短问题。数据表提到了“可编程I2C地址”。是否可以永久地将默认I2C地址更改为另一
    发表于 10-23 16:46

    VL53L0x环境光灵敏度无法测量距离

    ?Best regardsSoren #light-intensity #light #vl53l0x #vl53l0 #tof #ir #time-of-flight #ambient-light #halogen
    发表于 04-15 16:42

    RT-Thread VL53L0X TOF传感器驱动设计资料实现

    1、RT-Thread VL53L0X TOF传感器驱动实现  Time of flight(TOF),中文翻译为“飞行时间”。飞行时间技术在广义上可理解为通过测量物体、粒子或波在固定
    发表于 09-15 17:08

    请问VL53L0X的FOV范围是多少?

    数据表显示 VL53L0X 具有 25 度的 FOV。然而,每个 VL53L0X 显示的 FOV 略有不同。比如一只VL53L0X好像是24度,另一只VL53L0X好像是26度。
    发表于 12-08 06:12

    VL53L0X TOF激光测距传感器的数据手册免费下载

    VL53L0X是一种新一代飞行时间(TOF)激光测距模块,安装在当今市场上最小的封装中,与传统技术不同,它提供精确的距离测量,无论目标反射是什么。它可以测量高达2米的绝对距离,设置一个
    发表于 07-08 08:00 40次下载
    <b class='flag-5'>VL53L0X</b> <b class='flag-5'>TOF</b>激光测距传感器的数据手册免费下载

    微雪电子测距传感器VL53L0X测距模块简介

    VL53L0X 飞行时间 测距传感器模块 2米 I2C接口 测距频率可达50Hz,低功耗,抗干扰 型号 VL53L0X Dist
    的头像 发表于 01-06 08:56 9115次阅读
    微雪电子测距传感器<b class='flag-5'>VL53L0X</b>测距<b class='flag-5'>模块</b>简介

    dfrobotVL53L0X ToF激光测距传感器简介

    VL53L0X激光测距传感器是一款基于意法半导体(STMicroelectronics)新出的基于飞行时间测距 (ToF) 原理设计的高精度测距传感器。与传统的技术不同,VL53L0X无论目标反射率如何,都能提供精确的距离测量,
    的头像 发表于 01-02 08:42 7396次阅读
    dfrobotVL<b class='flag-5'>53L0X</b> <b class='flag-5'>ToF</b>激光测距传感器简介

    使用STM32F103应用VL53L0X激光测距模块的测试参考程序免费下载

    本文档的主要内容详细介绍的是使用STM32F103应用VL53L0X激光测距模块的测试参考程序免费下载。
    发表于 06-12 08:00 165次下载
    使用<b class='flag-5'>STM32</b>F103应用<b class='flag-5'>VL53L0X</b>激光测距<b class='flag-5'>模块</b>的测试参考程序免费下载

    VL53L0X激光测距传感器的数据手册免费下载

    VL53L0X是新一代飞行时间(ToF)激光测距模块,封装在当今市场上最小的封装中,与传统技术不同的是,无论目标反射是什么,都能提供精确的距离测量。它可以测量高达2米的绝对距离,树立了
    发表于 12-08 08:00 25次下载
    <b class='flag-5'>VL53L0X</b>激光测距传感器的数据手册免费下载