STM32 蜂鸣器控制实验-物联网
*概念:
蜂鸣器可以分为两种:有源蜂鸣器与无源蜂鸣器,这里的“源”指的是有没有自带震荡电路,有源的蜂鸣器自带有震荡电路,通电的瞬间就会发出声音;而无源的蜂鸣器,需要提供一个2~5Khz左右的方波进行驱动,才可以发出声音。
1. 实验目的
- 学习RFID模块中主控芯片基于Cortex-M3内核的STM32F103C8T6的使用
- 利用程序实现蜂鸣器发声
2. 实验环境
- 硬件:RFID开发板(125K、56M、915M、2.4G),UART串口底板,ST-LINK仿真器
- 软件:Keil5
3. 实验原理
125K,13.56M,915M,2.4G这四个RFID模块上均有一个蜂鸣器。
不过要注意,每个蜂鸣器连接的GPIO引脚不兼容,需要单独定义
硬件原理图
各个模块蜂鸣器与STM32芯片连接引脚表
模块 |
125K |
13.56M |
915M |
2.4G |
连接引脚 |
PA5 |
PA1 |
PA4 |
PA0 |
蜂鸣器使用三极管控制,当BUZZER管脚为高电平时,蜂鸣器发声。
4. 实验步骤
- 将ST-LINK仿真器一端连在电脑,一端连在UART调试底板的JTAG接口上。
用Keil软件打开工程\Components\第三章RFID硬件处理器实验\2_STM32_BEEP\MDK-ARM\STM32_BEEP.uvprojx
打开Keil软件,Project->Open Project
- 打开h 在宏定义中设置RFID模块类型
在 BEEP_PIN 后边输入以上红框内参数。图例定义为125K的模块
- 编译程序,点击按钮如图:
- 编译通过之后下载程序到RFID模块,点击按钮如图:
5. 实验结果
RED灯BLUE灯常亮
蜂鸣器一直发声
部分代码展示:
void BEEP1_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_SetBits(GPIOE,GPIO_Pin_4);//设置GPIOA--GPIO_Pin_4为高电平
}
头文件:
#ifndef __BEEP_H
#define __BEEP_H
#include "sys.h"
//蜂鸣器端口定义
#define BEEP PEout(4) // BEEP,蜂鸣器接口
void BEEP1_Init(void); //初始化
#endif
作者:泽宇-Li
- 点赞
- 收藏
- 关注作者
评论(0)