VL6810X驱动 距离和光线传感器 stm32 HAL库
VL6810X驱动 距离和光线传感器 stm32 HAL库
- 代码
- 库文件和官方文档
- 注意事项
- 1、
- 2、
- 3、
这是一款ST出品的传感器,感觉用的人不多 网上没什么驱动代码,所以自己根据st的官方资料写了一个,我这个读取数据的方式是轮询模式,官方还有一个读取数据的模式,效率更高,我懒得改,没需求。在下面的百度云链接中有官方资料,不过是全英文的,中文的目前没有,多花时间看吧。
以前从来不写博客,因为懒,这几天突然有感悟,啥就不说了,以后每完成一个有意义的东西都会更新分享。这次我看文档+写代码搞了一天,如果对你有帮助就评论一句“谢谢”!!
pAlsData.errorStatus :0 lux:7(光)
pRangeData.errorStatus :0 range_mm:13(距离)
注意这款传感器的量程是0-20mm
代码
对应库文件在下面 自行下载
#include"vl6810x_api.h"
#include"vl6810x.h"
int main(void)
{VL6180X_Init();while(1){VL6180x_RangeData_t pRangeData;;VL6180x_AlsData_t pAlsData;VL6180x_AlsPollMeasurement(theVL6180xDev, &pAlsData);if(pAlsData.errorStatus == 0){printf("pAlsData.errorStatus :%d lux:%d \r\n", pAlsData.errorStatus , pAlsData.lux);}else{VL6180x_RangeStartSingleShot(theVL6180xDev); printf("errorStatus :%d \r\n", pAlsData.errorStatus );}pRangeData.range_mm = 0;VL6180x_RangePollMeasurement( theVL6180xDev, &pRangeData); if(pRangeData.errorStatus == 0){printf("pRangeData.errorStatus :%d range_mm:%d signalRate_mcps:%d DMax:%d \r\n refConvTime:%d rtnRate:%d\r\n", pRangeData.errorStatus , pRangeData.range_mm, pRangeData.signalRate_mcps, pRangeData.DMax, pRangeData.refConvTime ,pRangeData.rtnRate);}else{printf("pRangeData.errorStatus :%d range_mm:%d signalRate_mcps:%d DMax:%d \r\n refConvTime:%d rtnRate:%d\r\n", pRangeData.errorStatus , pRangeData.range_mm, pRangeData.signalRate_mcps, pRangeData.DMax, pRangeData.refConvTime ,pRangeData.rtnRate);}}
}
库文件和官方文档
链接:https://pan.baidu.com/s/10HRSvubXGTzCbmDib3t6Lg
提取码:21gk
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V3的分享
注意事项
如果大家想移植官方历程 需要注意以下几个方面
1、
int VL6180x_RangeGetMeasurement(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData)
{int status;uint16_t RawRate;uint8_t RawStatus;LOG_FUNCTION_START("");
//需要屏蔽 不屏蔽 读出来的距离一直是ff 不会产生错误码 这个应该跟传感器里面的缓存数据区有关,因为这款传感器能够临时储存数据 应该就像fifo一样 我没深究,因为用不着
// status = _CachedRegs_Fetch(dev);
// if (status) {// VL6180x_ErrLog("Cache register read fail");
// goto error;
// }status = VL6180x_RangeGetResult(dev, &pRangeData->range_mm);
2、
这款传感器的滤波问题,我在调试的时候,一直返回错误码16,后来一查,就是因为开了这个功能,所以我初始化这款传感器时关闭了它,就解决了问题,我不知道为什么会返回错误码16 ,有可能是因为我对着电脑屏幕测距离的原因吧!
3、
最后就是轮询获取数据时里面有个延时函数DISP_ExecLoopBody(),可能是怕我们循环读取数据的频率太高吧! 自行替换延时函数,防止读取速度过快!
VL6810X驱动 距离和光线传感器 stm32 HAL库相关推荐
- 【春节歌曲回味 | STM32小音乐盒 】PWM+定时器驱动无源蜂鸣器(STM32 HAL库)
l STM32通过PWM与定时器方式控制无源蜂鸣器鸣响 l STM32小音乐盒,歌曲进度条图形显示与百分比显示,歌曲切换 l 编程使用STM32 HAL库 l IIC OLED界面编程,动画实 ...
- STM32 HAL库PID控制电机 第二章 TB6612FNG芯片驱动GB37-520电机
STM32 HAL库PID控制电机 第二章 TB6612FNG芯片驱动GB37-520电机(HAL库) 1 电路图 2 TB6612简介 TB6612是双驱动,可同时驱动两个电机 STBY:接单片机的 ...
- STM32 HAL库 驱动 MT6701 磁编码器
写在前面: MT6701 是 MagnTek 推出的新一代基于差分霍尔感应原理的磁性角度编码器芯片.值得一提的是 MT6701不仅提供 0~360° 的角度信号,而且还提供了一个"按压&qu ...
- 基于STM32 HAL库的遥控小车
目录 前言 一.材料清单 二.系统概述 三.硬件设计 1.HC-SR04超声波模块 2.HC-05/06蓝牙模块 3.L298n电机驱动模块 四.代码 1.引脚设置 2.遥控部分 3.超声波报警部分 ...
- stm32+HAL库制作转速仪
stm32+HAL库制作转速仪 前言 电机在运行过程中,需要实时检测其转速的稳定性,有效反映电机的运行情况. 本文介绍了基于stm32的转速仪的设计,可以用光电门传感器和红外对管传感器测量,可以设置选 ...
- 温湿度传感器驱动SHT85 单片机STM32 HAL库
功能介绍:读取传感器SHT85数据,转换成温度.湿度 .饱和水蒸气含量. 注意事项: SDA脚设置为开漏输出,外部上拉电阻10k.或者设置成推挽,软件切换SDA输入输出. 调试时可适当加长延时时间. ...
- STM32 HAL库学习笔记1-HAL库简介
STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...
- STM32 HAL库详解
STM32 HAL库整体总结 STM32 之二 HAL库详解 及 手动移植 本篇博客是对以上参考资源的一个二次总结与整理. 1. HAL库文件结构 对于开发人员而言,首先要清楚 HAL 库的文件结构. ...
- stm32 HAL库分析之CAN
stm32 HAL库分析之CAN 阻塞发送 HAL_StatusTypeDef HAL_CAN_Transmit(CAN_HandleTypeDef* hcan, uint32_t Timeout) ...
最新文章
- 个人微信公众号已开通,欢迎各位小伙伴关注
- 12.04 scrum report
- 如果知道一个控件类型的对话框句柄是编辑框控件
- alibaba Fastjson的JOSN解析库 -
- 上传失败 已保存至草稿_学霸的草稿纸火了,卷面整洁,网友调侃:作业都比不上这草稿本...
- (王道408考研数据结构)第二章线性表-第三节1:单链表的定义及其操作(插入和删除,建立之尾插和头插)
- 【转】科普贴:BIOS和UEFI的启动项
- python 根据答案 自动答题器_python根据题库答案自动答题
- c语言学习笔记(浙大翁恺mooc)
- 如何注册属于自己的微信订阅号(公众号)
- Golang使用mgo.v2包操作MongoDB的基础示例
- 轨道运营管理专业自荐书_城市轨道交通运营管理专业职业规划(1)
- 用phpcms切换中英文网页的方法(不用解析二级域名)、phpcms完成pc和手机端切换(同一域名)...
- 怎么在Ubuntu手机上发送短信及拨打电话
- numpy的文件存储.npy .npz 文件详解
- docker run --privileged参数(容器权限全开,不利于宿主机安全,宿主机容易重启)(与/usr/sbin/init共用)
- SAP 获取本机信息(IP及电脑名称)
- 如何自定义sonar插件并学会使用
- 录音艺术与计算机音乐文化,云南艺术学院文华学院
- NimBuzz 拨打免费电话
热门文章
- Linux系统下GiB和GB的换算详细解析
- 世界上最高的山峰的排名
- 显卡html5性能测试工具,电脑显卡性能测试软件
- 大逃杀最多100人服务器,绝地求生大逃杀服务器怎么回事 玩家太多服务器承受不了...
- Mysql高级——索引篇
- Mifare plus卡调试总结
- SuperRecovery超级硬盘数据恢复软件
- mysql IP address 'xxx' could not be resolved
- SAP MDG和SAP MDM的区别
- mongodb和mysql中自动增长id_如何在java中维护MongoDB的_id字段的自动增长