BH1750FVI光强度传感器及其STM32驱动程序
BH1750FVI光强度传感器的介绍
此传感器可以直接输出环境光强的数值(单位为lx),其内部有16位AD转换,即可表示1lx-65535lx,通过IIC输出其数值。
此传感器有3种分辨率模式,他们的分辨率分别为:4lx,1lx和0.5lx。他们的测量时间分别为:16ms,120ms,120ms。如果对测量时间要求不高的话,建议使用0.5lx分辨率的。
其引脚图为:
VCC:5V或3.3V
GND:接地
SCL:IIC时钟总线,在本程序中的引脚为PD6
SDA:IIC数据总线,在本程序中的引脚为PD7
AD0:地址线,不接时默认为低电平,在本程序中可不接
BH1750在STM32中的驱动程序
将下面的内容直接复制,可以直接使用,已经调试成功了。
light.h文件
#ifndef __LIGHT_H
#define __LIGHT_H
#include "sys.h"
#include "delay.h"
#include "light.h"
//IO方向设置
#define SDA_IN() {GPIOD->CRL&=0X0FFFFFFF;GPIOD->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOD->CRL&=0X0FFFFFFF;GPIOD->CRL|=(u32)3<<28;}
#define IIC_SCL PDout(6) //SCL
#define IIC_SDA PDout(7) //SDA
#define READ_SDA PDin(7) //输入SDA
#define ADDR 0x23//0100011
#define uchar unsigned char
#define BHAddWrite 0x46 //从机地址+最后写方向位
#define BHAddRead 0x47 //从机地