VD6283TX环境光传感器驱动开发(1)----获取ID

VD6283TX环境光传感器驱动开发----1.获取ID

  • 概述
  • 视频教学
  • 样品申请
  • 源码下载
  • 模块参数
  • IIC接线方式
  • 设备ID
  • 生成STM32CUBEMX
    • 串口配置
  • IIC配置
  • 串口重定向
  • 模块地址
  • 获取ID
  • 主函数
  • 结果演示

概述

环境光传感器是一种光电探测器,能够将光转换为电压或者电流,使用多光谱环境光传感器为了测量光谱上特定波长或特定带锯波长的强度,该传感器的目标是改善视觉体验并最终使用户感到舒适的照明视觉体验。
在这里插入图片描述
在这里插入图片描述

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

视频教学

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

VD6283TX环境光传感器驱动开发(1)----获取ID

样品申请

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

源码下载

模块参数

VD6283 是 ST 的一款微型光学模块,尺寸为 1.83 x 1.0 x 0.55 mm,具有6个独立的环境光传感通道,包括红、绿、蓝、红外、透明和可见通道。它使用高级混合滤波器并能在7 mLux 到 30 kLux 的范围内运行。此传感器具有独特的读出架构,可以提取从100 Hz 到 2 kHz 频率的交流灯光闪烁信号。VD6283 还配备了 I2C 接口,工作电压为1.8 V,并具有低功耗特性。它可以在 -30 到 85 °C 的温度范围内运行。主要应用包括屏幕亮度调整的真实色调色感测定、光亮度和相关色温测量以及闪烁校正辅助的光频提取。通过专利架构和高性能的光电二极管设计,VD6283 可以提取灯光闪烁频率,避免视频上的“条纹效果”,或检查它们对人眼是否安全。此外,VD6283 是唯一能够同时进行闪烁操作和环境光传感操作的传感器。
在这里插入图片描述

IIC接线方式

IIC接线方式如下所示,需要注意的是供电和上拉都是1.8V。

在这里插入图片描述

开发板接线方式如下所示。

在这里插入图片描述

设备ID

我们可以通过查询0x00和0x01获取模块ID和模块版本号。

在这里插入图片描述

手册给出的取模块ID和模块版本号分别是0x70和0xBD。

在这里插入图片描述

生成STM32CUBEMX

串口配置

查看原理图,PA1和PA0设置为开发板的串口。

在这里插入图片描述
配置串口。
在这里插入图片描述

IIC配置

在这个应用中,VD6283TX模块通过I2C(IIC)接口与主控器通信。具体来说,VD6283TX模块的I2C引脚连接到主控器的PB6(引脚B6)和PB7(引脚B7)两个IO口。

在这里插入图片描述
配置IIC为普通模式,速度为100k。

在这里插入图片描述

串口重定向

打开魔术棒,勾选MicroLIB

在这里插入图片描述

在main.c中,添加头文件,若不添加会出现 identifier “FILE” is undefined报错。

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

函数声明和串口重定向:

/* USER CODE BEGIN PFP */
int fputc(int ch, FILE *f){HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);return ch;
}
/* USER CODE END PFP */

模块地址

VD6283TX模块的默认设备地址为0100000(0x20)。设备地址是用来识别和通信特定设备的标识符。通过将VL6180模块的设备地址设置为0100000(0x20),您可以确保与该模块进行正常的通信和控制。
若添加读写位,0x40为写地址,0x41为读地址。

在这里插入图片描述

获取ID

读写函数如下所示。

/*** @brief  读取数据** @param  add   模块地址* @param  reg   寄存器地址* @param  data  buffer 缓冲区* @param  len   读取长度* @retval ret   正常返回HAL_OK**/
uint8_t VD6283TX_read_reg(uint8_t add,uint8_t reg,  uint8_t * data, uint8_t len)
{uint8_t ret;ret=HAL_I2C_Mem_Read(&hi2c1 ,(add<<1)|1,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);return ret;
}/*** @brief  写入数据** @param  add   模块地址* @param  reg   寄存器地址* @param  data  buffer 缓冲区* @param  len   写入长度* @retval ret   正常返回HAL_OK**/
uint8_t VD6283TX_write_reg(uint8_t add,uint8_t reg, uint8_t * data, uint8_t len)
{uint8_t ret;ret=HAL_I2C_Mem_Write(&hi2c1 ,(add<<1)|0,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);return ret;}

获取ID以及版本号代码如下所示。

/*** @brief  获取设备ID** @param  add      设备地址* @param  val      设备ID.* @retval ret   		正常返回HAL_OK**/uint8_t VD6283TX_getChipID(uint8_t add)
{uint8_t temp[1]={0};VD6283TX_read_reg(add,VD6283TX_DEVICE_ID,temp,1);return temp[0];
}/*** @brief  获取VD6283硅芯片的修订版本** @param  add      设备地址* @retval          硅芯片修订版本**/
uint8_t VD6283TX_getSiliconRevision(uint8_t add)
{uint8_t revision[1] = {0};VD6283TX_read_reg(add, VD6283TX_REVISION_ID, revision, 1);return revision[0];
}

主函数

  /* USER CODE BEGIN 2 */HAL_Delay(200);	printf("123\n");//获取设备IDHAL_I2C_Mem_Write(&hi2c1 ,(add<<1)|0,reg,I2C_MEMADD_SIZE_8BIT,data,len,0xffff);uint8_t VD6283_ID =VD6283TX_getChipID(VD6283TX_ID);printf("VD6283TX_ID=0x%x\n",VD6283_ID);		//获取VD6283硅芯片的修订版本uint8_t VD6283_Revision =VD6283TX_getSiliconRevision(VD6283TX_ID);printf("getSiliconRevision=0x%x\n",VD6283_Revision);		/* USER CODE END 2 */

结果演示

在这里插入图片描述

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

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

相关文章

计算机网络常见面试题

梳理计算机网络相关的面试题&#xff0c;相关知识结构主要参考谢希仁老师的《计算机网络&#xff08;第五版&#xff09;》一书&#xff0c;并整理互联网上常见面试题。 计算机网络性能指标 性能指标从不同的方面来度量计算机网络的性能。下面介绍常用的七个性能指标。 1、速…

23-properties文件和xml文件以及dom4j的基本使用操作

特殊文件 我们利用这些特殊文件来存放我们 java 中的数据信息&#xff0c;当数据量比较大的时候&#xff0c;我们可以利用这个文件对数据进行快速的赋值 对于多个用户数据的存储的时候我们要用这个XML来进行存储 关于这些特殊文件&#xff0c;我们主要学什么 了解他们的特点&…

华为云云耀云服务器L实例评测 | 实例使用教学之软件安装:华为云云耀云服务器环境下安装 Docker

华为云云耀云服务器L实例评测 &#xff5c; 实例使用教学之软件安装&#xff1a;华为云云耀云服务器环境下安装 Docker 介绍华为云云耀云服务器 华为云云耀云服务器 &#xff08;目前已经全新升级为 华为云云耀云服务器L实例&#xff09; 华为云云耀云服务器是什么华为云云耀云…

想要精通算法和SQL的成长之路 - 验证二叉搜索树和不同的二叉搜索树

想要精通算法和SQL的成长之路 - 验证二叉搜索树和不同的二叉搜索树 前言一. 验证二叉搜索树二. 不同的二叉搜索树三. 不同的二叉搜索树II 前言 想要精通算法和SQL的成长之路 - 系列导航 二叉搜索树的定义&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包…

【前段基础入门之】=>CSS浮动

浮动的简介 在最初&#xff0c;浮动是用来实现文字环绕图片效果的&#xff0c;现在浮动是主流的页面布局方式之一。 元素浮动后的特点 &#x1f922; 脱离文档流。&#x1f60a; 不管浮动前是什么元素&#xff0c;浮动后&#xff1a;默认宽与高都是被内容撑开&#xff08;尽…

GRACE-FO L2产品的发布说明 - 版本UTCSR RL-06.1产品

数据更新日期&#xff1a;2023-5-11 0&#xff09;此说明取代了所有先前与UTCSR-RL06.1 GRACE-FO Level-2产品相关的旧版本发布说明。 1&#xff09;截止到本发布说明日期的GRACE-FO RL-06.1产品文件列表如下&#xff1a; 2&#xff09;通常情况下&#xff0c;每个日历月有四…

游戏逆向中的 NoClip 手段和安全应对方式

文章目录 墙壁边界寻找碰撞 NoClip 是一种典型的黑客行为&#xff0c;允许你穿过墙壁&#xff0c;所以 NoClip 又可以认为是避免碰撞体积的行为 墙壁边界 游戏中设置了碰撞体作为墙壁边界&#xff0c;是 玩家对象 和墙壁发生了碰撞&#xff0c;而不是 相机 玩家对象有他的 X…

从 0 到 1 ,手把手教你编写《消息队列》项目(Java实现) —— 核心类持久化存储

文章目录 一、持久化存储的方式与路径二、公共模块序列化 / 反序列化异常规定 三、持久化存储数据库数据管理文件数据管理读写规定新增 /删除规定内存中 Message 的规定存储规定代码编写 硬盘数据管理 一、持久化存储的方式与路径 交换机,队列,绑定关系,这些我们使用数据库来管…

警用装备管理系统|智装备DW-S304的主要功能

东识科技&#xff08;DONWIT&#xff09;警用装备管理系统DW-S304是依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 在国外很早开始便使用警用装备管理系统对警用装备的管理使用进行…

Explain执行计划字段解释说明---select_type、table、patitions字段说明

1、select_type的类型有哪些 2、select_type的查询类型说明 1、SIMPLE 简单的 select 查询,查询中不包含子查询或者UNION 2、PRIMARY 查询中若包含任何复杂的子部分&#xff0c;最外层查询则被标记为Primary 3、DERIVED 在FROM列表中包含的子查询被标记为DERIVED(衍生)&…

基于ssm的互联网废品回收/基于web的废品资源利用系统

摘 要 本毕业设计的内容是设计并且实现一个基于SSM框架的互联网废品回收。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;Tomcat网络信息服务作为应用服务器。互联网废品回收的功能已基本实现&#xff0c;主要包括用户、回收员、物品分类、回收物品、用户下单…

【Python 基础 2023 最新】第七课 Pandas

【Python 基础 2022 最新】第七课 Pandas 概述Pandas 是什么?Pandas 的应用场景安装 Pandas Pandas 数据结构Series 数组什么是 Series?Series 创建 Series 数组操作数据检索数据修改过滤Series 数组运算总结 什么是 DataFrameDataFrame 创建 DataFrame 操作数据检索筛选数据…

决策树C4.5算法的技术深度剖析、实战解读

目录 一、简介决策树&#xff08;Decision Tree&#xff09;例子&#xff1a; 信息熵&#xff08;Information Entropy&#xff09;与信息增益&#xff08;Information Gain&#xff09;例子&#xff1a; 信息增益比&#xff08;Gain Ratio&#xff09;例子&#xff1a; 二、算…

密码技术 (6) - 证书

一. 前言 前面介绍的公钥密码和数字签名&#xff0c;都无法解决一个问题&#xff0c;那就是判断自己获取的公钥是否期望的&#xff0c;不能确定公钥是否被中间攻击人掉包。所以&#xff0c;证书的作用是用来证明公钥是否合法的。本文介绍的证书就是解决证书的可靠性的技术。 二…

最新反编译小程序教程(支持分包一键反编译),反编译成功率高达99%

最新反编译小程序教程&#xff08;支持分包一键反编译&#xff09;&#xff0c;反编译成功率高达99% 优点&#xff1a; 1.支持多个分包以及主包一次性反编译&#xff1b; 2.使用wxappUnpacker无法进行解析的小程序包&#xff0c;一键反编译解析&#xff08;咱没有发现反编译失败…

使用ExLlamaV2在消费级GPU上运行Llama2 70B

Llama 2模型中最大也是最好的模型有700亿个参数。一个fp16参数的大小为2字节。加载Llama 270b需要140 GB内存(700亿* 2字节)。 只要我们的内存够大&#xff0c;我们就可以在CPU上运行上运行Llama 2 70B。但是CPU的推理速度非常的慢&#xff0c;虽然能够运行&#xff0c;速度我…

正点原子嵌入式linux驱动开发——TF-A移植

经过了之前的学习&#xff0c;除了TF-A的详细启动流程仍待更新&#xff0c;TF-A的使用和其对应的大致启动流程已经进行过了学习。但是当我们实际做产品时&#xff0c;硬件平台肯定会和ST官方的有区别&#xff0c;比如DDR容量会改变&#xff0c;自己的硬件没有使用到官方EVK开发…

[ruby on rails] postgres sql explain 优化

一、查看执行计划 sql User.all.to_sql # 不会实际执行查询 puts ActiveRecord::Base.connection.explain(sql)# 会实际执行查询&#xff0c;再列出计划 User.all.explain# 会实际执行查询&#xff0c;再列出计划 ActiveRecord::Base.connection.execute(EXPLAIN (ANALYZE, V…

EM聚类(下):用EM算法对王者荣耀英雄进行划分

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

Vscode 如何创建java项目,并添加包

创建java项目 添加包 先打开这个资源管理器中的javaProject&#xff0c;然后打开这个javaProject&#xff0c;点击里面的Reference Libraries,然后点击加号 选择要添加的包然后进行确认即可