本帖转自:http://www.viewtool.com/bbs/forum.php?mod=viewthread& tid=940&extra=page%3D1
程序功能说明:
1、通过 STM32的硬件I2C读写控制BH1750光照度传感器模块测量环境光照强度。
2、程序通过串口打印输出光照强度值。
3、程序将光照强度值在LCD屏上显示。
程序注意事项:
1、根据BH1750传感器手册可知,在One Time H-Resolution Mode2测量模式下测量光照强度大于会要120ms以上的测量时间,所以程序在发送测量命令以后应该尽量延时120ms以上,否则测量出来的数据不准确。
2、在两次测量之间最好加个延时,也就是在第一次测量结束和下次测量命令发出之间加个100ms左右的延时,否则也会出现测量错误的问题。
3、在使用FSMC驱动LCD时不能用I2C1,只能用I2C2,或者将I2C1的时钟和引脚重映射。
4、测量结果保存在两个字节中的,所以需要作移位处理,具体处理方式可以产考手册和程序。
程序主函数:- /**
- * @brief 串口打印输出光照强度值
- * @param None
- * @retval None
- */
- int main(void)
- {
- uint8_t I2C_Data[10],ret;
- NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x4000); //重新映射中断向量表,默认情况下可以不要
- SystemInit();//系统时钟初始化
- USART_Configuration(115200);//串口1初始化
- printf("x0c ");printf("x0c ");//超级终端清屏
- printf(" 33[1;40;32m");//设置超级终端背景为黑色,字符为绿色
- printf("rn*******************************************************************************");
- printf("rn************************ Copyright 2009-2012, ViewTool ************************");
- printf("rn************************* http://www.viewtool.com/bbs *************************");
- printf("rn***************************** All Rights Reserved *****************************");
- printf("rn*******************************************************************************");
- printf("rn");
- //根据BH1750FVI传感器设置I2C初始化数据
- I2C_Info.controlMode = 1;//硬件控制
- I2C_Info.speed=100000;//100K
- I2C_Info.subAddrMode=2;//无子地址模式
- I2C_Info.subAddrWidth=0;//子地址为0字节宽度
- I2C_Info.slaveAddr=0x46;//BH1750FVI传感器I2C地址
- I2C_Info.channel=1;//使用I2C2
- VT_I2C_HardInit(&I2C_Info);
- I2C_Data[0]=0x01;
- VT_I2C_HardWriteNByte(I2C2,0,I2C_Data,1);//传感器芯片上电命令
- while(1)
- {
- I2C_Data[0]=0x11;
- ret = VT_I2C_HardWriteNByte(I2C2,0,I2C_Data,1);//发送测量命令
- if(ret){
- printf("I2C写数据错误 %dnr",ret);
- }
- Delay(3000000);//等待大于120ms,必须加这个延时,否则传感器没准备好数据会出现读数据错误
- ret = VT_I2C_HardReadNByte(I2C2,0,I2C_Data,2);//读取光照强度值
- if(ret){
- printf("I2C读数据错误 %dnr",ret);
- }else{
- printf("光强度:%f lxnr",((I2C_Data[0]<<8)+I2C_Data[1])/(1.2*2));
- }
- Delay(1000000);
- }
- }
复制代码
程序运行效果:
程序源码下载:
BH1750_LCD.rar (642.35 KB, 下载次数: 0)
BH1750_Print.rar (1.03 MB, 下载次数: 3)
传感器资料下载:
BH1750光强传感器.pdf (433.63 KB, 下载次数: 0)
再上传一个基于labview的程序:
BH1750FVI.rar (23.55 KB, 下载次数: 0)
程序运行效果图:
实现方式可以参考这里:点我点我
3
|
|
|
|
thamk you very much !!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
qiang .......................................
|
|
|
|
|