#ifndef __BH1750_H
#define __BH1750_H	 

#include "stm32f10x.h"
#include "delay.h"


#define BH1750_SDA_GPIO_TYPE  GPIOB
#define BH1750_SDA_GPIO_PIN   GPIO_Pin_6
#define BH1750_SDA_RCC        RCC_APB2Periph_GPIOB


#define BH1750_SCL_GPIO_TYPE  GPIOB
#define BH1750_SCL_GPIO_PIN   GPIO_Pin_7
#define BH1750_SCL_RCC        RCC_APB2Periph_GPIOB


//BH1750�˿ڶ���
#define SDA_IN() bh1750_sdain_mode();//��������ģʽ
#define SDA_OUT() bh1750_sdaout_mode();//�������ģʽ

#define SETSCL GPIO_SetBits(BH1750_SCL_GPIO_TYPE,BH1750_SCL_GPIO_PIN); //SCL Pin_6 �����
#define CLRSCL GPIO_ResetBits(BH1750_SCL_GPIO_TYPE,BH1750_SCL_GPIO_PIN);//SCL Pin_6 �����

#define SETSDA GPIO_SetBits(BH1750_SDA_GPIO_TYPE,BH1750_SDA_GPIO_PIN); //SDA Pin_7 �����
#define CLRSDA GPIO_ResetBits(BH1750_SDA_GPIO_TYPE,BH1750_SDA_GPIO_PIN);//SDA Pin_7 �����

//#define SETADDR GPIO_SetBits(GPIOB,GPIO_Pin_5); //ADDR Pin_5 �����
//#define CLRADDR GPIO_ResetBits(GPIOB,GPIO_Pin_5); //ADDR Pin_5 �����

#define READ_SDA GPIO_ReadInputDataBit(BH1750_SDA_GPIO_TYPE,BH1750_SDA_GPIO_PIN);//��SDA����

//IIC���������
void BH1750IO_Init(void);
void BH1750_Init(void);
void conversion(unsigned int temp_data);
void  Single_Write_BH1750(unsigned char REG_Address);            //���������
unsigned char Single_Read_BH1750(unsigned char REG_Address);                //������ȡ�ڲ��Ĵ�������
void  Multiple_Read_BH1750(void);                     //�����Ķ�ȡ�ڲ��Ĵ�������
//------------------------------------


unsigned int Dispose(void);


#endif