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

news2024/11/25 22:44:14

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

  • 概述
  • 视频教学
  • 样品申请
  • 修改设备地址
  • 主程序
  • 测试结果

概述

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

视频教学

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

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

样品申请

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

修改设备地址

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 */

测试结果

测试距离结果如下所示。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1005384.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UMA 2 - 创建自己的UMA模型⭐二.给模型绑定骨骼 , 并建立符合UMA的骨骼结构

文章目录 🟥 寻找或者制作合适果模🟧 使用ActorCore AccuRig🟩 替换骨骼名称🟦 增加Global骨骼🟪 增加Position骨骼🟫 设置骨骼结构⬛ 删除无用骨骼⬜最终骨骼效果🟥 寻找或者制作合适果模 找到一个果模,需要导出fbx格式. 🟧 使用ActorCore AccuRig 将fbx导…

JVM 虚拟机 ----> Java 内存模型(JMM)

文章目录 Java 内存模型&#xff08;JMM&#xff09;一、运行时数据区域划分二、程序计数器&#xff08;Program Counter Register&#xff09;计数器的作用 三、Java 虚拟机栈&#xff08;VM Stack&#xff09;四、本地方法栈&#xff08;Native Method Stack&#xff09;五、…

fcpx视频编辑处理 Final Cut Pro for Mac

Final Cut Pro是一款专业的视频剪辑软件&#xff0c;适用于Mac操作系统。Final Cut Pro X版本在视频剪辑方面进行了大规模的更新和改进&#xff0c;下面将介绍Final Cut Pro X中的一些主要功能和特性&#xff1a; Magnetic Timeline。这个新功能使得多条剪辑片段如同磁铁般吸合…

Databend 开源周报第 110 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 使用 BendSQL 管…

班主任须知,查询发布技巧

Hey&#xff0c;亲爱的班主任们&#xff01;今天小红书博主要跟你们分享一个超级实用的技巧&#xff0c;让你们的查询发布变得轻松又高效&#xff01;它能帮你们把查询结果变成在线查询&#xff0c;让家长们随时随地都能轻松查询各种信息&#xff0c;简直就是教师“神器”。 通…

Fiddler抓包工具(详细讲解)

序章 Fiddler是一个蛮好用的抓包工具&#xff0c;可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多&#xff0c;举之不尽呀&#xff01;当年学习的时候也蛮费劲&#xff0c;一些蛮实用隐藏的小功能用了之后就忘记了&…

SQL11 高级操作符练习(1)

描述 题目&#xff1a;现在运营想要找到男性且GPA在3.5以上(不包括3.5)的用户进行调研&#xff0c;请你取出相关数据。 示例&#xff1a;user_profile iddevice_idgenderageuniversitygpa12138male21北京大学3.423214male复旦大学4.036543female20北京大学3.242315female23浙…

《TCP/IP网络编程》阅读笔记--标准I/O和I/O流分离

目录 1--标准I/O 1-1--标准I/O的优缺点 1-2--FILE 指针和文件描述符的转换 1-3--基于Socket的标准I/O函数使用 2--I/O流分离 2-1--文件描述符的复制和半关闭 2-2--复制文件描述符实现 I/O 流的分离 1--标准I/O 1-1--标准I/O的优缺点 标准 I/O 函数的优点&#xff1a; ①…

基于SSM的农产品仓库管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

Windows 安装 Nacos

1. 安装包下载&#xff1a; 2. 目录文件说明&#xff1a; 将下载好后的安装包进行解压&#xff1a; 3. 修改端口&#xff1a; 在Nacos的安装目录下&#xff0c;找到conf目录&#xff0c;然后打开nacos-server.properties文件&#xff0c;在配置文件中找到以下两个属性&#xff…

临沂大学图书馆藏《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

临沂大学图书馆藏《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

发现服务器被入侵了该怎么办?

如果服务器被入侵了&#xff0c;最好的做法应该是立即断开网络连接&#xff0c;以防止攻击者进一步损害系统。然后检查下服务器&#xff0c;看看是否有任何指示受到入侵的迹象。如果有发现了任何可疑的活动&#xff0c;应该立即联系网络管理员&#xff0c;或者联系专业的防护厂…

软件系统测试有什么注意事项?对软件产品起到什么作用?

在软件开发领域&#xff0c;软件系统测试是确保软件质量的重要环节。它旨在发现和解决软件中的缺陷和错误&#xff0c;确保软件能够按照预期功能正常运行。 一、软件系统测试的过程 1、进行测试计划的制定&#xff0c;确定测试的目标、范围和方法。 2、根据测试计划设计测试…

htaccess绕过上传实验

实验目的 利用上传htaccess文件解析漏洞绕过验证进行上传PHP脚本木马 实验工具 火狐&#xff1a;Mozilla Firefox&#xff0c;中文俗称“火狐”&#xff08;正式缩写为Fx或fx&#xff0c;非正式缩写为FF&#xff09;&#xff0c;是一个自由及开放源代码网页浏览器&#xff0…

车机多用户系统的适配问题

多用户问题出现背景 记录一下多用户的适配问题&#xff1a; 背景是system/app下面新push了两个apk&#xff0c;一个是我们的业务场景apk一个是虚拟车CarService服务的apk&#xff0c;我们的apk需要链接CarService服务通过AIDL通信。 下面这两张图是未roo的情况&#xff08;当…

什么是无人机全自动飞行系统?概念、构成、作用深度解析

无人机的工业化应用深入催生出新的痛点&#xff0c;无人机应用飞手培养难、成本高、技术参差不齐&#xff0c;以及应急响应和采集作业价值等没有得到充分释放&#xff0c;由此无人机自动飞行系统、无人机自动机场横空出世&#xff0c;因其无人化、自动化、无人机值守的应用特性…

免费的代码审查工具你知道这几个就够了?新手程序员必读

代码质量关系到一个项目的好坏&#xff0c;一直以来都是程序员和项目经理所关心的事情&#xff0c;在之前代码的检查用于人工或者静态页面&#xff0c;再后来就会用的各种工具来做因为不良的代码不仅会影响代码的可维护性&#xff0c;而且还会在某些情况下影响其性能。此外&…

MYSQL优化——B+树讲解

B-/B树看 MySQL索引结构 B-树 B-树,这里的 B 表示 balance( 平衡的意思),B-树是一种多路自平衡的搜索树.它类似普通的平衡二叉树&#xff0c;不同的一点是B-树允许每个节点有更多的子节点。下图是 B-树的简化图. B-树有如下特点: 所有键值分布在整颗树中&#xff1b; 任何一…

远程双屏电脑的时候有的窗口默认打开在第二块屏幕上,导致无法看到和操作【伸手党福利】

解决方法&#xff1a; 点击看不到的窗口&#xff0c;使之处于激活状态 win 左箭头 或者 win右箭头 Alt空格 按M 按 左箭头 或者 右箭头 就能看到窗口移出来了。

2023-9-12 分组背包问题

题目链接&#xff1a;分组背包问题 #include <iostream> #include <algorithm>using namespace std;const int N 110;int n, m;int v[N][N], w[N][N], s[N]; int f[N];int main() {cin >> n >> m;for(int i 1; i < n; i ){cin >> s[i];for(…