OPT3001光传感器程序

OPT3001光传感器程序

ID:39454753

大小:19.51 KB

页数:3页

时间:2019-07-03

OPT3001光传感器程序_第1页
OPT3001光传感器程序_第2页
OPT3001光传感器程序_第3页
资源描述:

《OPT3001光传感器程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include"OPT3001IIC.H"#include"Delay.h"#include"OPT3001.h"#include"SHT21.H"#include"Uart.h"ucharmsb=0,lsb=0;short_data;ucharaa=0;//OPT3001寄存器写函数//registerName;寄存器地址//value:需要往寄存器里面写的数据//ADD引脚链接到GNDvoidOpt3001WriteRegister(ucharregisterName,uintvalue){OPT3001IIC_Start();//起

2、始信号OPT3001IIC_Send_Byte(0x88);//发送设备地址+写信号aa=OPT3001IIC_Wait_Ack();OPT3001IIC_Send_Byte(registerName);//发送存储单元地址aa=OPT3001IIC_Wait_Ack();OPT3001IIC_Send_Byte((uchar)(value>>8));aa=OPT3001IIC_Wait_Ack();OPT3001IIC_Send_Byte((uchar)(value&0x00FF));aa=OPT3001IIC_Wait_Ack();OP

3、T3001IIC_Stop();//停止信号}//*********************************************************//读出BMP085内部数据,连续两个//*********************************************************shortOPT3001Multiple_read(ucharST_Address){OPT3001IIC_Start();//起始信号OPT3001IIC_Send_Byte(0x88);//发送设备地址+写信号aa=OPT

4、3001IIC_Wait_Ack();OPT3001IIC_Send_Byte(ST_Address);//发送存储单元地址aa=OPT3001IIC_Wait_Ack();OPT3001IIC_Stop();//停止信号OPT3001IIC_Start();//起始信号OPT3001IIC_Send_Byte(0x89);//发送设备地址+读信号aa=OPT3001IIC_Wait_Ack();msb=OPT3001IIC_Read_Byte(ACK);//BUF[0]存储lsb=OPT3001IIC_Read_Byte(NACK);OP

5、T3001IIC_Stop();//停止信号Delayms(5);_data=msb<<8;_data

6、=lsb;return_data;}//获取OPT3001的出厂编号默认值读出来应该是0x5449uintGetOPT3001ManufacturerID(){uintIDNum=0;IDNum=OPT3001Multiple_read(MANUFACTURER_ID);//读取returnIDNum;}//获取OPT3001的设备ID初始值为0x3001uintGetOPT3001DeviceID(){uintIDNum=0;IDNum

7、=OPT3001Multiple_read(DEVICE_ID);//读取returnIDNum;}//OPT3001初始化函数//返回值:0为初始化成功//1为初始化失败ucharOPT3001Init(){uintManufacturerIDNum=0;uintDeviceIDNum=0;OPT3001IIC_Init();//OPT3001端口初始化OPT3001Config();//配置OPT3001并且唤醒OPT3001Delayms(5);ManufacturerIDNum=GetOPT3001ManufacturerID();

8、DELAYUS(100);DeviceIDNum=GetOPT3001DeviceID();if(ManufacturerIDNum==0x5449&&DeviceIDNum==0x3001)//如果读出来的ID都正确表示初始化成功{return0;}else//否则初始化不成功{return1;}}//OPT3001寄存器配置//12-15位RN[0,3]:0x1100,设置为Full-ScaleMode//9-10:M[0,1]:0x10,设置OPT3001为连续转换模式//4bit:Latch=1,其他位初始化为00即可voidOPT

9、3001Config(){Opt3001WriteRegister(0x01,0xc410);}//获取光强度得到的是放大100后的值占4个字节unsignedlongGetLu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。