STM32F4 蜂鸣器实验

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

STM32F4 蜂鸣器实验_第1张图片
/beep.h文件代码/

#ifndef _BEEP_H_
#define _BEEP_H_
#include "sys.h"

//GPIO口定义
#define BEEP PFout(8)

#define beep1 GPIO_Pin_8
void BEEP_Init(void);//初始化GPIO口


#endif

/beep.c文件代码/

#include "beep.h"

//初始化
void BEEP_Init(void){
	GPIO_InitTypeDef GPIO_InitStructure;
	
	//使能 GPIOF 时钟
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
	
	//初始化蜂鸣器对应引脚 GPIOF8
	 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
	 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
	 GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
	 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
	 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//下拉
	
	//初始化 GPIO
	 GPIO_Init(GPIOF, &GPIO_InitStructure);
	
	//蜂鸣器对应引脚 GPIOF8 拉低,
	 GPIO_ResetBits(GPIOF,GPIO_Pin_8); 
}

/main.c文件代码/

#include "stm32f4xx.h"  
#include "beep.h"
#include "led.h"
#include "delay.h"

 
 int main(void) 
{
	
	delay_init(168);
	BEEP_Init();
	led_Init();
	while(1){
		GPIO_ResetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10); // DS0 拉低,亮 等同 LED0=0;
		GPIO_SetBits(GPIOF,GPIO_Pin_8);  //BEEP 引脚拉低, 等同 BEEP=0 蜂鸣器叫
		delay_ms(100);
		GPIO_SetBits(GPIOF,GPIO_Pin_9 | GPIO_Pin_10); // DS0 拉高,灭 等同 LED0=1;
		GPIO_ResetBits(GPIOF,GPIO_Pin_8); //BEEP 引脚拉高, 等同 BEEP=1; 蜂鸣器不叫
		delay_ms(100);
	}		
 }

效果:可以看到 DS0 亮的时候蜂鸣器不叫,而DS0 灭的时候,蜂鸣器叫。

你可能感兴趣的:(STM32F4 蜂鸣器实验)