一、准备材料
1、参考资料
- 《STM32F103xCDE_DS_CH_V5.pdf》
- 《STM32中文参考手册_V10.pdf》
2、器件准备
- STM32
- 蜂鸣器
这里是一个接好三极管的蜂鸣器,因为STM32输出的引脚电流不能驱动蜂鸣器。
二、原理说明
1、确定可以使用的引脚
2、蜂鸣器外围设备连接
单片机引脚是无法直接驱动大概率器件的需要加三极管放大电流,10K电阻是防止单片机驱动是蜂鸣器受到干扰。
兄弟们使用立创记得随时保存!!!!!
当GPIO输出低电平时蜂鸣器响,高电平时不响。
三、实物连接
四、代码实现
- .h文件
#ifndef __BEEP_H
#define __BEEP_H
#include "sys.h"
#define BEEP PAout(5) // PA5 =1:不响;=0:响
void BEEP_Init(void);//初始化
#endif
- .c文件
#include "beep.h"
void BEEP_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //BEEP--PA5端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOA.5
GPIO_SetBits(GPIOA,GPIO_Pin_5); //PB.5 输出高 关闭蜂鸣器
}
主函数:
#include "sys.h"
#include "delay.h"
#include "led.h"
#include "beep.h"
int main(void)
{
delay_init();
LED_Init();
BEEP_Init();
while(1)
{
LED0=0;
BEEP=0;
delay_ms(300);
LED0=1;
BEEP=1;
delay_ms(300);
}
}
主函数里面添加了LED灯的实验,记得添加修改文件,不需要删除掉!