32光照2.rar
#include "BH1750.h" #include "stdio.h" uchar BUF[8]; //1⁄2ÓÊÕÊý3⁄4Ý»o ́æÇø int mcy; //±íÊ3⁄41⁄2øÎ»±êÖ3⁄4λ uint date[4]; uint dis_data; //±äÁ¿ //unsigned int ge,shi,bai,qian,wan; void GPIOConfig(void) { GPIO_InitTypeDef GPIO_InitStruct; /*¿aÆôGPIOBμÄÍâÉèʱÖÓ*/ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStruct.GPIO_Pin = sda | scl; //sda/scl GPIO_Init(GPIOB, &GPIO;_InitStruct); } void Delay_5us(void) { uint16_t i=0; uint16_t timer = 5; while(timer--) { i=10; while(i--); } } void Delay_mms(uint16_t tmp) { uint16_t i=0; while(tmp--) { i=12000; while(i--); } } /***¿aÊ1⁄4ÐÅoÅ***/ void BH1750_Start() { GPIO_SetBits(GPIOB, sda); //À ̧ßÊý3⁄4ÝÏß GPIO_SetBits(GPIOB, scl); //À ̧ßʱÖÓÏß Delay_5us(); //ÑÓʱ GPIO_ResetBits(GPIOB, sda); //2úÉúÏÂ1⁄2μÑØ Delay_5us(); //ÑÓʱ GPIO_ResetBits(GPIOB, scl); //ÀμÍʱÖÓÏß } /*****Í£Ö1ÐÅoÅ******/ void BH1750_Stop() { GPIO_ResetBits(GPIOB, scl); //ÀμÍʱÖÓÏß GPIO_ResetBits(GPIOB, sda); //ÀμÍÊý3⁄4ÝÏß GPIO_SetBits(GPIOB, scl); //À ̧ßʱÖÓÏß Delay_5us(); //ÑÓʱ GPIO_SetBits(GPIOB, sda); //2úÉúÉÏÉýÑØ Delay_5us(); //ÑÓʱ } /************************************** ·¢ËÍÓ¦ ́ðÐÅoÅ Èë¿Ú2ÎÊý:ack (0:ACK 1:NAK) **************************************/ void BH1750_SendACK(int ack) { GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStruct.GPIO_Pin = sda; GPIO_Init(GPIOB, &GPIO;_InitStruct); if(ack == 1) //Ð ́Ó¦ ́ðÐÅoÅ GPIO_SetBits(GPIOB, s
下载地址
用户评论