前言
蜂鸣器模块在一个单片机项目中同样不可或缺,可能这篇文章对大多数人帮助并不大,但对刚刚入门的同学快速上手蜂鸣器模块应该有所帮助。
一、模块介绍
有源蜂鸣器模块,与无源蜂鸣器模块最大的区别是其内部已经包含振荡器,只要输入高低电平,就能控制蜂鸣器的发声,支持3.3V和5V的工作电压。在使用的时候应注意,蜂鸣器是由高电平触发还是低电平触发。我在这里也给出我使用的有源蜂鸣器模块。
链接:【淘宝】https://m.tb.cn/h.5B0iEVGJQXvEn6A?tk=KDQCWLeSzjg CZ3458 「电子积木 有源蜂鸣器模块 低电平触发 蜂鸣器控制板」点击链接直接打开 或者 淘宝搜索直接打开
二、硬件设计
1.硬件清单
stm32f103c8t6,有源蜂鸣器模块、杜邦线、STlink烧录器
2.硬件接线
PS:基本除了PB3、PB4、PA15(他们用作SWI)之外的引脚都可以使用,此处以PB7为例。
蜂鸣器模块 | stm32 |
GND | GND |
IO | PB7 |
VCC | 3.3V |
3.硬件实物图
三、软件设计
1.BEEP.c
.c文件如果不需要添加其他特殊程序,可以无需修改,注释中写了如何使用。
/*
有源蜂鸣器(低电平触发)
1.c8t6一般用不了PA15、PB3、PB4(用作SW)
2.使用:引用beep.h
初始化Beep_Init();
BEEP=0/1;
*/
#include "beep.h"
void Beep_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //初始化
RCC_APB2PeriphClockCmd(BEEP_GPIO_CLK,ENABLE);
GPIO_InitStructure.GPIO_Pin = BEEP_GPIO_Pin;
GPIO_InitStructure.GPIO_Mode = BEEP_GPIO_Mode;
GPIO_InitStructure.GPIO_Speed = BEEP_GPIO_Speed; //速度为50M
GPIO_Init(BEEP_GPIO_Port, &GPIO_InitStructure); //端口初始化
GPIO_SetBits(BEEP_GPIO_Port,BEEP_GPIO_Pin); //高电平
}
2.BEEP.h
修改引脚及对应时钟即可
#ifndef __BEEP_H
#define __BEEP_H
#include "stm32f10x.h"
#include "sys.h"
#define BEEP PBout(7)
#define BEEP_GPIO_Pin GPIO_Pin_7
#define BEEP_GPIO_Mode GPIO_Mode_Out_PP //推挽输出
#define BEEP_GPIO_Port GPIOB
#define BEEP_GPIO_Speed GPIO_Speed_50MHz
#define BEEP_GPIO_CLK RCC_APB2Periph_GPIOB
void Beep_Init(void);
#endif
3.main.c
主函数中只要引用BEEP.h,并初始化BEEP即可,然后我们就可以通过BEEP=0或者BEEP=1来控制蜂鸣器啦文章来源:https://www.toymoban.com/news/detail-857659.html
#include "BEEP.h"
#include "stm32f10x.h"
int main(void)
{
Beep_Init();
while(1)
{
BEEP = 0;
}
}
四、完整工程
希望我的程序能帮到大家,也希望大家多多提出建议!完整工程如下
链接:https://pan.baidu.com/s/1L42beEeaIFsLeDY1pZBkEA?pwd=1234 提取码:1234文章来源地址https://www.toymoban.com/news/detail-857659.html
到了这里,关于STM32——有源蜂鸣器模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!