STM32F103C8T6蜂鳴器使用
蜂鳴器簡介 :
蜂鳴器是一種一體化結構的電子訊響器,採用直流電壓供電。蜂鳴器主要分爲壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母"H"或"HA"(舊標準用"FM"、“ZZG”、“LB”、"JD"等)表示。
有源蜂鳴器與無源蜂鳴器區別:
蜂鳴器可以分爲有源蜂鳴器與無源蜂鳴器。這裏的"源"不是指電源,而是指震盪源。有源蜂鳴器直接接上額定電源就可連續發聲,而無源蜂鳴器則和電磁揚聲器一樣,需要接在音頻輸出電路中才能發聲。無源蜂鳴器可以通過單片機產生2K-5KHz的頻率控制,改變空控制頻率就可以發出不同的聲音。有源蜂鳴器頻率是固定的,不能播放音樂,只能發出一種聲音。
有源蜂鳴器底電平觸發
有源蜂鳴器驅動電路:
無源蜂鳴器驅動電路:
相比與有源蜂鳴器增加一個濾波電容。
STM32驅動有源蜂鳴器
主函數
切記如果蜂鳴器直接接在單片機IO端口是無法正常工作的,但是STM32自帶LED燈PC13端口有驅動能力,可以把蜂鳴器接在PC13端口,以下就是在PC13端口驅動蜂鳴器。
#include "sys.h"
#include "delay.h"
#include "beep.h"
int main()
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2 現在不需要,可以刪除中斷
delay_init(); //初始化延時函數
BEEP_Init(); //初始化蜂鳴器
while(1)
{
BEEP = 0;//底電平觸發
delay_ms(1000);
BEEP = 1;
}
}
bee.c函數
#include "beep.h"
void BEEP_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能PC端口時鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //BEEP-->PC13 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推輓輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度爲50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //根據設定參數初始化PC13
GPIO_SetBits(GPIOC,GPIO_Pin_13); //PC13輸高
}
bee.h函數
#ifndef __BEEP_H
#define __BEEP_H
#include "sys.h"
//蜂鳴器驅動 代碼
//蜂鳴器端口定義
#define BEEP PCout(13) // BEEP,蜂鳴器接口
void BEEP_Init(void); //初始化
#endif