光敏传感器与蜂鸣器
1.LigntSensor.c
#include "stm32f10x.h" // Device header
void LightSensor_Init(void){
//初始化程序
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
//上拉输入模式,保证引脚不会悬空
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
}
//读取端口的函数
uint8_t LightSensor_Get(void){
return GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);
}
2.LightSensor.h
#ifndef _Lightsensor_H
#define _LightSensor_H
void LightSensor_Init(void);
uint8_t LightSensor_Get(void);
#endif
3.Buzzer.c
//封装Buzzer的驱动程序
#include "stm32f10x.h" // Device header
//初始化Buzzer的函数
void Buzzer_Init(void)
{
//
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
//
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_12);
}
void Buzzer1_ON(void)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_12);
}
void Buzzer1_OFF(void)
{
GPIO_SetBits(GPIOB,GPIO_Pin_12);
}
//实现翻转功能
void Buzzer1_Turn(void){
if(GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12) == 0){
GPIO_SetBits(GPIOB,GPIO_Pin_12);
}
else
GPIO_ResetBits(GPIOB,GPIO_Pin_12);
}
void Buzzer2_ON(void)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_12);
}
void Buzzer2_OFF(void)
{
GPIO_SetBits(GPIOB,GPIO_Pin_12);
}
void Buzzer2_Turn(void){
if(GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12) == 0){
GPIO_SetBits(GPIOB,GPIO_Pin_12);
}
else
GPIO_ResetBits(GPIOB,GPIO_Pin_12);
}
Buzzer.h
#ifndef _Buzzer_H
#define _Buzzer_H
void Buzzer_Init(void);
void Buzzer1_ON(void);
void Buzzer1_OFF(void);
void Buzzer2_ON(void);
void Buzzer2_OFF(void);
void Buzzer1_Turn(void);
void Buzzer2_Turn(void);
#endif
4.main.c
#include "stm32f10x.h" // Device header
#include "Delay.h" //使用延时函数
#include "Buzzer.h"
int main(void)
{
Buzzer_Init();
LightSensor_Init();
while(1)
{
if(LightSensor_Get() == 1){
Buzzer1_ON();
}else{
Buzzer1_OFF();
}
}
}