STM32控制蜂鸣器
来源:互联网 发布:大数据导论 编辑:程序博客网 时间:2024/05/16 13:44
main.c具体的代码如下
/*----------------------------------------------------------------------------------功能描述:普通延时控制LED2闪烁,间隔250ms,定时器控制蜂鸣器和LED3硬件平台:STM32F103 开发板作者:求是07固件库 :V3.5-----------------------------------------------------------------------------------*//* Includes ------------------------------------------------------------------*/#include "stm32f10x.h"#include "led.h"#include "delay.h"#include "key.h"#include "timer.h"#include "beep.h"uint8_t BeepFlag=1;int main(void){LED_Init();//LED初始化 <span style="white-space:pre"></span>KEY_Init();//按键初始化 <span style="white-space:pre"></span>SysTick_Init();//延时初始化BEEP_Init(); //蜂鸣器初始化TIM2_Base_Init(1000);//10Khz的计数频率,计数到1000为100ms <span style="white-space:pre"></span>while(1){Delay_ms(250); LED2_REV;}}void TIM2_IRQHandler(void) //TIM2中断{ static uint8_t i;if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 {TIM_ClearITPendingBit(TIM2, TIM_IT_Update ); //清除TIMx的中断待处理位:TIM 中断源 if(BeepFlag) BEEP_REV; //取反蜂鸣器else BEEP_OFF;i++;if(i==20){BeepFlag=!BeepFlag;LED3_REV;i=0;}}}
蜂鸣器的原理图如下:
beep.c的源代码如下:
<pre name="code" class="cpp">/*-------------------------------------------------------------------------------文件名称:beep.c文件描述:根据硬件连接配置蜂鸣器端口,打开对应的寄存器 备 注:无---------------------------------------------------------------------------------*/#include "beep.h"/*-------------------------------------------------------------------------------程序名称:BEEP_Init程序描述:初始化BEEP相关端口,打开端口时钟,配置端口输出 输入参数:无返回参数:无备 注:无---------------------------------------------------------------------------------*/void BEEP_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; //打开PB口时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//PB8引脚设置 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;//端口速度 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//端口模式,此为输出推挽模式 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//初始化对应的端口 GPIO_Init(GPIOB, &GPIO_InitStructure);}其中的一些宏定义:
#define BEEP_ON GPIO_SetBits(GPIOB,GPIO_Pin_8)#define BEEP_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_8)#define BEEP_REV GPIO_WriteBit(GPIOB, GPIO_Pin_8,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_8))))
使用库函数比较方便
0 0
- STM32控制蜂鸣器
- STM32 单片机控制无源蜂鸣器唱歌 欢乐颂
- ARM开发(3)基于STM32的矩阵键盘控制蜂鸣器
- STM32与蜂鸣器
- STM32蜂鸣器实例详解
- stm32之蜂鸣器
- ARM开发(10)基于STM32的通用定时器中断控制蜂鸣器响
- C# 控制蜂鸣器发声
- 蜂鸣器控制实验
- pwm控制蜂鸣器实验
- beep 控制蜂鸣器发声
- C# 控制蜂鸣器
- C# 控制蜂鸣器发声
- PWM控制蜂鸣器驱动
- C# 控制蜂鸣器发声
- 单片机控制蜂鸣器
- Ubuntu下控制蜂鸣器
- 51单片机(AT89C52)控制蜂鸣器
- 2016华为软件精英挑战赛 图论学习
- 【模拟】POJ 3087
- 利用命名对象来防止运行一个应用程序的多个实例
- HTML5 学习笔记
- 基础链表
- STM32控制蜂鸣器
- 再谈机器学习中的归一化方法(Normalization Method)
- POJ1703 Find them, Catch them
- Android 开发的 RxJava 与RxAndroid详解以及RXbus
- 编程总结网站
- OpenGL学习脚印:背面剔除(Face Culling)
- UIView支持的属性
- flexbox 学习笔记【RN】
- 1091. Acute Stroke (30)-PAT甲级真题(广度优先搜索)