蜂鸣器:是⼀种⼀体化结构的电⼦讯响器。主要分为分压式蜂鸣器和电磁式蜂鸣器两种类型。 ⼀、有源/⽆源蜂鸣器(不是指是否带电源,⽽是有没有⾃带震荡电路) 1、有源蜂鸣器:有源蜂鸣器⾃带震荡电路,⼀通电就会发声。
铣床飞刀
2、⽆源蜂鸣器:没有⾃带震荡电路,需要外部提供2~5Khz左右的⽅波驱动,太能发声。
⼆、硬件设计
因为STM32的单个IO⼝最⼤可以提供25mA电流,⽽蜂鸣器的驱动电流在30mA左右,两者⼗分相近,但是STM32整个芯⽚的电流,最⼤也就150mA左右,如果⽤IO⼝直接驱动蜂鸣器,其它功能使⽤时可能出现电流不⾜。所以我们通过三极管(S8050)括流后再驱动蜂鸣器,这样STM32的IO⼝只需要提供不到1mA的电流就⾜够了。
R33主要⽤于防⽌蜂鸣器的误发声,当 PB.8 输出⾼电平的时候,蜂鸣器将发声,当 PB.8 输出低电平的时候,蜂鸣器停⽌发声。
三、软件设计
1//⼦函数
2 #include "beep.h"
3 #include "stm32f10x.h"
4
三元催化清洗剂配方
5
6void BEEP_Init(void)
7 {
8 GPIO_InitTypeDef GPIO_BEEP; //创建⼀个结构体
9
10 GPIO_BEEP.GPIO_Mode = GPIO_Mode_Out_PP; //设置该端⼝为推挽输出
11 GPIO_BEEP.GPIO_Pin = GPIO_Pin_8; //PB.8端⼝
12 GPIO_BEEP.GPIO_Speed = GPIO_Speed_50MHz; //50MHz
13
高频淬火工艺14 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //初始化GPIOB时钟
15
16 GPIO_Init(GPIOB, &GPIO_BEEP); //根据参数初始化GPIO.8
17 }
主函数
1 #include "sys.h"
2 #include "delay.h"
3 #include "beep.h"
4
5int main(void)
6 {
砭石祛斑泥7 BEEP_Init(); //蜂鸣器初始化
8 delay_init(); //延时函数初始化
9while(1)
10 {
11 GPIO_ResetBits(GPIOB, GPIO_Pin_8); //关闭蜂鸣器
12 delay_ms(1500); //延时1.5秒
抑制的生活13
14 GPIO_SetBits(GPIOB, GPIO_Pin_8); //打开蜂鸣器
15 delay_ms(100); //延时0.1秒
16 }
17 }