实物接线如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3f95a0031ec24085b470dde482317d35.jpeg#pic_center)
#include "stm32f10x.h"
#include "delay.h"
#include "LED.h"
#include "Key.h"
#include "Buzzer.h"
#include "LightSensor.h"
int main(void)
{
Buzzer_Init();
LightSensor_Init();
while(1)
{
if(LightSensor_Get()==1)
{
Buzzer_ON();
}
else{
Buzzer_OFF();
}
}
}
```c
#include "stm32f10x.h"
void LightSensor_Init()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitTypeDef GPIO_Instructure;
GPIO_Instructure.GPIO_Mode= GPIO_Mode_IPU;
GPIO_Instructure.GPIO_Pin = GPIO_Pin_13;
GPIO_Instructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_Instructure);
}
uint8_t LightSensor_Get()
{
return GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);
}
#ifndef __LightSensor_
#define __LightSensor_
void LightSensor_Init(void);
uint8_t LightSensor_Get(void);
#endif
#include "stm32f10x.h"
void Buzzer_Init()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitTypeDef GPIO_Instructure;
GPIO_Instructure.GPIO_Mode= GPIO_Mode_Out_PP;
GPIO_Instructure.GPIO_Pin=GPIO_Pin_12;
GPIO_Instructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_Instructure);
GPIO_SetBits(GPIOB,GPIO_Pin_12);
}
void Buzzer_ON()
{
GPIO_ResetBits(GPIOB,GPIO_Pin_12);
}
void Buzzer_OFF()
{
GPIO_SetBits(GPIOB,GPIO_Pin_12);
}
void Buzzer_Turn()
{
if(GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12)==0)
GPIO_SetBits(GPIOB,GPIO_Pin_12);
else
GPIO_ResetBits(GPIOB,GPIO_Pin_12);
}
#ifndef __BUZZER_
#define __BUZZER_
void Buzzer_Init(void);
void Buzzer_ON(void);
void Buzzer_OFF(void);
void Buzzer_Turn(void);
#endif