1.主函数部分:
#include "stm32f10x.h" // Device header #include "Delay.h" #include "Buzzer.h" #include "LightSensor.h" int main(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct); while(1) { if(LightSensor_Get()==1) Buzzer_ON(); else Buzzer_OFF(); } }
2.蜂鸣器(Buzzer.c)部分:
#include "stm32f10x.h" // Device header void Buzzer_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Pin=GPIO_Pin_12; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct); } void Buzzer_ON(void) { GPIO_ResetBits(GPIOB,GPIO_Pin_12); } void Buzzer_OFF(void) { GPIO_SetBits(GPIOB,GPIO_Pin_12); }
Buzzer.h部分:
#ifndef __BUZZER_H #define __BUZZER_H void Buzzer_Init(void); void Buzzer_ON(void); void Buzzer_OFF(void); #endif
3.光敏电阻(LightSensor.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); }
LightSensor.h:
#ifndef __LIGHT_SENSOR_H #define __LIGHT_SENSOR_H void LightSensor_Init(void); uint8_t LightSensor_Get(void); #endif