基于STM32 您所在的位置:网站首页 单片机示意图蜂鸣器怎么用 基于STM32

基于STM32

2024-07-17 02:47| 来源: 网络整理| 查看: 265

1.蜂鸣器

蜂鸣器是一种发声设备,被广泛用于计算机、打印机、复印机、报警器、电子玩具等。后面介绍定时器是会给大家说说利用蜂鸣器实现歌曲演奏。蜂鸣器分为有源蜂鸣器和无源蜂鸣器。那么什么是有源,什么是无源呢?这里的有源不是指电源的“源”,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声;无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz 左右的方波驱动才能发声。 

2.硬件介绍

这里使用STM32F103实现无源蜂鸣器的交替发声,下图是硬件设计图。首先,STM32F1 的单个 IO 最大可以提供 25mA 电流(数据手册查看),而蜂鸣器的驱动电流是 30mA 。这里使用一个NPN三极管(S8050)扩流驱动蜂鸣器,R37主要用于防止蜂鸣器的误发声。当 PB.8 输出高电平的时候,蜂鸣器将发声, 当 PB.8 输出低电平的时候,蜂鸣器停止发声。

3.软件介绍

#ifndef _LED_H #define _LED_H #include "stm32f10x.h" #include "sys.h" void Led_Init(void); void Beep_Init(void); #define LED1 PFout(7) #define LED2 PBout(5) #define LED3 PAout(8) #define LED4 PAout(1) #define BEEP PBout(8) #endif

蜂鸣器初始化函数

/* 函数功能:LED初始化; 硬件连接: BEEP -> PB8; */ void Beep_Init(void) { //时钟使能 RCC->APB2ENR |=1CRH |=0x00000003; }

主函数

#include "led.h" #include "delay.h" int main(void) { Led_Init(); Delay_Init(72); Beep_Init();//蜂鸣器初始化 while(1) { /* 这里实现蜂鸣器交替发声,后面会介绍定时器 时会通过蜂鸣器实现歌曲演奏。 */ BEEP=!BEEP; delay_MS(500); } } 最后, 后期会更新我的博客(超声波,GSM,GPS,蓝牙,WIFI,OLED,摄像头,串口封包解包,红外解码编码等)也有上传资源(M3的小实验和小项目),同时也会分享嵌入式相关的,欢迎关注~


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有