BH1750 STM32 驱动程序
简介:
BH1750FIV是一个采用标准IIC总线接口的环境光强传感器,此传感器适用于获得像键盘LCD和手机背光灯等光强。买的淘宝上贴好的模块,gy30。
指令码:
/*************************************************************/#define BHAddWrite 0x46 //从机地址+最后写方向位
#define BHAddRead 0x47 //从机地址+最后读方向位
#define BHPowDown 0x00 //关闭模块
#define BHPowOn 0x01 //打开模块等待测量指令
#define BHReset 0x07 //重置数据寄存器值在PowerOn模式下有效
#define BHModeH1 0x10 //高分辨率 单位1lx 测量时间120ms
#define BHModeH2 0x11 //高分辨率模式2 单位0.5lx 测量时间120ms
#define BHModeL 0x13 //低分辨率 单位4lx 测量时间16ms
#define BHSigModeH 0x20 //一次高分辨率 测量 测量后模块转到 PowerDown模式
#define BHSigModeH2 0x21 //同上类似
#define BHSigModeL 0x23 // 上类似
/*************************************************************/
BH1750FIV工六种模式分为连续型和一次型,连续型又分为高精度1、2和低精度模式,单次型同样分为高精度1、2和低精度模式。单次型与连续型的区别在于单次型读完一次数据就会自动转为PowerDown模式。
各模式测量所需时间
时序图
Bh1750采用标准的IIC总线结构,驱动程序也简单,从图可以看出设置高精度连续读模式先发送IIC起始信号再发送7位器件地址+1位写标志位也就是0X46,然后从机应答之后在发送模式指令等待ack应答后发送IIC停止信号这样一条模式就设置完毕。代码如下:
void bh_data_send(u8 command)
{do{iic_start(); //iic起始信号iic_byte_write(BHAddWrite); //发送器件地址}while(iic_wait_ack()); //等待从机应答iic_byte_write(command); //发送指令iic_wait_ack(); //等待从机应答iic_stop(); //iic停止信号
}
读取数据参照时序图也比较简单,先发送IIC起始信号,在发送7位器件地址+一位读写标志位,等待从机ACK应答,这时主机开始读取IIC数据,再主机读取完8位数据,主机要向从机发送ack应答信号告诉从机接收数据完毕,然后再读取低八位数据,主机发送非应答信号然后结束IIC通信。代码如下:
u16 bh_data_read(void)
{u16 buf;iic_start(); //iic起始信号iic_byte_write(BHAddRead); //发送器件地址+读标志位iic_wait_ack(); //等待从机应答buf=iic_byte_read(1); //读取数据buf=buf<<8; //读取并保存高八位数据buf+=0x00ff&iic_byte_read(0); //读取并保存第八位数据iic_stop(); //发送停止信号 return buf;
}
这样基本驱动就写完整了下面写一下综合测试代码:
int main(void)
{float datalx; USART1_Config();delay_init();iic_init();bh_data_send(BHPowOn); //发送启动命令bh_data_send(BHReset); //清除寄存器内容bh_data_send(BHModeH2); //设置高精度为模式2delay_ms(180); //设置完成后要有一段延迟,手册上说最大180ms就可以了while(1){datalx =bh_data_read()/1.2; //根据手册读取的数据除以1.2就得到单位位lx的光强度检测值。printf ("%f",datalx);delay_ms(500);}
}
串口输出结果:不同光强如图所示。
工程下载:点击打开链接
BH1750 STM32 驱动程序相关推荐
- stm32 2.4寸 TFT 触摸屏STM32驱动程序 2.4inch Arduino Display
stm32 2.4寸 TFT 触摸屏STM32驱动程序 2.4inch Arduino Display 今日为准备一项比赛,选购了一款2.4寸 8位并口通信的TFT触摸屏,此屏幕原本是专为arduin ...
- ADS1015使用指南及STM32驱动程序
ADS1015使用指南及驱动程序 ADS1015使用指南 简介 ADS1015的引脚介绍 ADS1015的寄存器介绍 寄存器相关配置 驱动程序 ADS1015使用指南 由于网上关于TI公司的ADS10 ...
- (标准库)直流无刷电机驱动(1)——简介及STM32驱动程序
有朋友想看部分讲解可以(标准库)直流无刷电机驱动(2)--霍尔传感器定时器初始化 (标准库)直流无刷电机驱动(3)--霍尔传感器状态获取 ------------------------------- ...
- ADS8685/ADS8681/ADS8689的stm32驱动程序
我在做ad的八路采集模块,用的是多路复用器配合芯片ads8685实现的,但在驱动ads8685芯片的时候费了不少时间,我把自己研究的驱动代码分享给大家,希望能够帮助大家做开发!
- AM2302+STM32驱动程序
AM2302是一款通过数字信号输出来测量空气温湿度的传感器,可测量0~99.9%RH范围内的湿度,精度为±2%RH,分辨度为0.1 RH:可测量-40℃~80℃范围内的温度,精度为±0.5℃,分辨度为 ...
- 基于STM32的GPS模块驱动(AIR530)
一.概述 由于做项目要用到GPS定位,于是在某宝购买了这款GPS模块.项目采用的MCU是STM32.废话少说,进入正题. 二.GPS模块简介 Air530 模块是一款高性能.高集成度的多模卫星定位导航 ...
- STM32驱动4寸ST7796S LCD-TFT屏
STM32驱动4寸ST7796S LCD-TFT屏 简介 屏幕与STM32F103RCT6开发板接线 屏幕原理图 STM32驱动程序 屏幕显示效果 简介 屏幕驱动芯片ST7796S最大支持320*48 ...
- 第1讲、Cadence Allergo绘制小马哥DragonFly四轴飞行器PCB四层板教程简介
初学者在学习单片机的时候大多都没有很明确的学习目的,所以往往学了很多课程之后,还是不能独立开发一个比较简单的项目,甚至不能完成一个简单项目的单独软件或者硬件部分的开发.这是因为大多数人是被动的.没有目 ...
- 2020年TI杯大学生电子设计大赛 无线运动传感器节点 备赛、参赛实录(历时一个月)
转载请标明转载自:https://blog.csdn.net/weixin_44578655/article/details/109020022 9.5 清单已经出了一段时间了.买的少部分元器件也到了 ...
- 玩转电机驱动——DRV8848驱动直流减速电机(STM32F103)
文章目录 前言 一.硬件基础 二.DRV8848驱动 1. DDRV8848芯片特性 2. 引脚的功能及类型 3. DRV8848电路图 三.STM32驱动程序 1. 电路分析 2. 程序编写 2.1 ...
最新文章
- C++继承中构造函数、析构函数调用顺序及虚析构函数
- Python之字符处理方法大全
- saspython知乎_评分模型效用度量指标如何解析?(含Python、R、SAS代码)
- 数据中心分解实验四--PC和VPC
- 数据结构和算法分析: 第五章 散列
- docker安装的环境
- 命令行执行php脚本中的$argv和$argc配置方法
- python硬件交互_Python操作系统库说明,pythonos,笔记
- socket网络编程--epoll小结
- 音视频开发(11)---基于B/S模式的视频监控系统设计
- HDU1253 胜利大逃亡【BFS】
- 数据结构笔记(三十二)--二叉排序树的基本概念与查找
- Unity3D 太空射击游戏学习笔记
- html修改progress背景色,html_progress元素以及样式修改
- 最新雷速问卷调查系统V7.15+ASP内核开发
- 2013年MBA、MPA、MPAcc入学考试英语辅导教材
- 一位码农的憧憬与迷茫
- linux命令如何分类,Linux系统命令的两种分类
- Whale帷幄 - 门面的力量丨提升进店客流
- OSG计算并绘制模型中每一个三角面片的法向量
热门文章
- qt textbrowser的边界框怎样改变颜色_专访天使投资人续沛川:用深度思考打破人生边界,拥有张力一生...
- python中seaborn报错These `style` levels are missing dashes解决办法
- Matplotlib-自定义虚线样式
- Cesium资料大集合
- android flex 开发环境搭建,Android6.0 MTK6737 开发环境搭建 · Younix’s Studio
- 切西瓜法实现微信抢红包功能
- ESP8266学习笔记(3)——GPIO接口使用
- 爬取京东辣条商品详情
- 揭开python的神秘面纱
- Salesforce学习 丨3张图搞懂SFDC认证考试体系及费用,看看30多个证你要怎么考