前言
? ? ? ? 蜂鳴器模塊在一個單片機項目中同樣不可或缺,可能這篇文章對大多數(shù)人幫助并不大,但對剛剛?cè)腴T的同學(xué)快速上手蜂鳴器模塊應(yīng)該有所幫助。
一、模塊介紹
? ? ? ?有源蜂鳴器模塊,與無源蜂鳴器模塊最大的區(qū)別是其內(nèi)部已經(jīng)包含振蕩器,只要輸入高低電平,就能控制蜂鳴器的發(fā)聲,支持3.3V和5V的工作電壓。在使用的時候應(yīng)注意,蜂鳴器是由高電平觸發(fā)還是低電平觸發(fā)。我在這里也給出我使用的有源蜂鳴器模塊。
鏈接:【淘寶】https://m.tb.cn/h.5B0iEVGJQXvEn6A?tk=KDQCWLeSzjg?CZ3458?「電子積木?有源蜂鳴器模塊?低電平觸發(fā)?蜂鳴器控制板」點擊鏈接直接打開?或者?淘寶搜索直接打開
二、硬件設(shè)計
1.硬件清單
stm32f103c8t6,有源蜂鳴器模塊、杜邦線、STlink燒錄器
2.硬件接線
PS:基本除了PB3、PB4、PA15(他們用作SWI)之外的引腳都可以使用,此處以PB7為例。
蜂鳴器模塊 | stm32 |
GND | GND |
IO | PB7 |
VCC | 3.3V |
3.硬件實物圖
三、軟件設(shè)計
1.BEEP.c
.c文件如果不需要添加其他特殊程序,可以無需修改,注釋中寫了如何使用。
/*
有源蜂鳴器(低電平觸發(fā))
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
修改引腳及對應(yīng)時鐘即可
#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
主函數(shù)中只要引用BEEP.h,并初始化BEEP即可,然后我們就可以通過BEEP=0或者BEEP=1來控制蜂鳴器啦文章來源:http://www.zghlxwxcb.cn/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文章來源地址http://www.zghlxwxcb.cn/news/detail-857659.html
到了這里,關(guān)于STM32——有源蜂鳴器模塊的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!