无源蜂鸣器连接在 GPIOB 的第5脚
buzzer.h文件

#ifndef __BUZZER_H
#define __BUZZER_H
#include "sys.h"#define BUZZERPORT    GPIOB   //定义IO接口
#define BUZZER  GPIO_Pin_5  //定义IO接口void BUZZER_Init(void);//初始化
void BUZZER_BEEP1(void);//响一声#endif

buzzer.c文件

#include "buzzer.h"
#include "delay.h"void BUZZER_Init(void){ //蜂鸣器的接口初始化GPIO_InitTypeDef  GPIO_InitStructure;    GPIO_InitStructure.GPIO_Pin = BUZZER; //选择端口号                        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //选择IO接口工作方式       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度(2/10/50MHz)    GPIO_Init(BUZZERPORT, &GPIO_InitStructure);   GPIO_WriteBit(BUZZERPORT,BUZZER,(BitAction)(1)); //蜂鸣器接口输出高电平1
}void BUZZER_BEEP1(void){ //蜂鸣器响一声u16 i;for(i=0;i<200;i++){GPIO_WriteBit(BUZZERPORT,BUZZER,(BitAction)(0)); //蜂鸣器接口输出0delay_us(500); //延时     GPIO_WriteBit(BUZZERPORT,BUZZER,(BitAction)(1)); //蜂鸣器接口输出高电平1delay_us(500); //延时       }
}/*
选择IO接口工作方式:
GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入
GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_AF_PP 复用推挽输出
GPIO_Mode_AF_OD 复用开漏输出
*/

main.c

/*********************************************************************************************
程序名: 蜂鸣器驱动程序(在按键控制LED基础上加入提示音)
硬件支持:    STM32F103C8   外部晶振8MHz RCC函数设置主频72MHz 
*********************************************************************************************/
#include "stm32f10x.h" //STM32头文件
#include "sys.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "flash.h" #include "buzzer.h"#define FLASH_START_ADDR  0x0801f000    //写入的起始地址int main (void){//主程序u16 a; //定义变量//初始化程序RCC_Configuration(); //时钟设置LED_Init();//LED初始化KEY_Init();//按键初始化BUZZER_Init();//蜂鸣器初始化BUZZER_BEEP1();//蜂鸣器音1a = FLASH_R(FLASH_START_ADDR);//从指定页的地址读FLASHGPIO_Write(LEDPORT,a|0xfffc&GPIO_ReadOutputData(LEDPORT)); //直接数值操作将变量值写入LED(LED在GPIOB组的PB0和PB1上)//主循环while(1){//示例4:有锁存if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平delay_ms(20); //延时20ms去抖动if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平//在2个LED上显示二进制加法a++; //变量加1if(a>3){ //当变量大于3时清0a=0; }GPIO_Write(LEDPORT,a|0xfffc&GPIO_ReadOutputData(LEDPORT)); //直接数值操作将变量值写入LED(LED在GPIOB组的PB0和PB1上)BUZZER_BEEP1();//蜂鸣器音1FLASH_W(FLASH_START_ADDR,a); //从指定页的地址写入FLASHwhile(!GPIO_ReadInputDataBit(KEYPORT,KEY1)); //等待按键松开 }}}
}/*【变量定义】
u32     a; //定义32位无符号变量a
u16     a; //定义16位无符号变量a
u8     a; //定义8位无符号变量a
vu32     a; //定义易变的32位无符号变量a
vu16     a; //定义易变的 16位无符号变量a
vu8     a; //定义易变的 8位无符号变量a
uc32     a; //定义只读的32位无符号变量a
uc16     a; //定义只读 的16位无符号变量a
uc8     a; //定义只读 的8位无符号变量a#define ONE  1   //宏定义delay_us(1); //延时1微秒
delay_ms(1); //延时1毫秒
delay_s(1); //延时1秒*/

STM32F103无源蜂鸣器驱动程序相关推荐

  1. STM32 使用STM32F103控制无源蜂鸣器发声播放音乐

    使用STM32控制无源蜂鸣器发声播放音乐 [注:学习STM32总结做的笔记,大神勿喷.有不足之处还望不吝赐教. -----本篇大部分转载而来,有侵权请联系作者,谢谢.] 原博客地址: https:// ...

  2. 超声波测距系统(stc89c52单片机+lcd1602+srf04超声波传感器+DS18B20温度传感器+无源蜂鸣器)

    求赞,它是我写博客的动力,请鼓励鼓励我,谢谢 基于超声波测距的倒车报警系统. 计划通过超声波传感器测距,温度传感器校正误差,lcd1602显示结果,距离小于某一值时将蜂鸣报警. 总体设计思路 HC-S ...

  3. stm32无源蜂鸣器定时器_STM32单片机实现无源蜂鸣器产生音乐声的设计

    使用有源蜂鸣器,只能发出固定的"滴滴"声,当然不能满足于此呀.使用无源蜂鸣器,只要输出不同频率的PWM波,即可发出不同的音符.不同的音符组合起来就是一个曲子了. 1 乐谱简析 1. ...

  4. 【硬件基础】有源蜂鸣器与无源蜂鸣器

    辨别方法 外观: 无源蜂鸣器: 有源蜂鸣器: 注:可以看到底部有绿色电路板的是无源蜂鸣器,底部是黑胶的为有源蜂鸣器 万用表电阻档检测 无源蜂鸣器:发出咔.咔声的且电阻只有8Ω(或16Ω). 有源蜂鸣器 ...

  5. 蜂鸣器接入_无源蜂鸣器的原理和和mixly结合制作电子琴

    一:无源蜂鸣器内部原理 无源蜂鸣器的源指的并不是电源,而是震荡源.其中无源蜂鸣器内部由磁铁.线圈和振膜构成震荡源. 若给线圈通上电,根据电生磁及右手螺旋定则可知会产生如上图所示的一个电磁铁,两个磁铁之 ...

  6. arduino无源蜂鸣器歌曲编码_Arduino与无源蜂鸣器

    1.Arduino无源蜂鸣器传感器模块 我们可以使用Arduino进行很多互动作品,其中最常用的是声光显示器.之前的所有实验都与LED有关.但是,这个实验中的电路可以产生声音.通常,实验是通过蜂鸣器或 ...

  7. arduino无源蜂鸣器歌曲编码_Arduino加无源蜂鸣器,播放音乐《葫芦娃》

    Arduino加无源蜂鸣器,播放音乐<葫芦娃> #define NOTE_D0 -1 #define NOTE_D1 294 #define NOTE_D2 330 #define NOT ...

  8. 有源蜂鸣器和无源蜂鸣器的区别_电磁式蜂鸣器和压电式蜂鸣器的区别以及驱动方法...

    蜂鸣器是设计电子产品时比较常用的发声元器件,根据工作原理的不同,可以分为电磁式蜂鸣器和压电式蜂鸣器.在开发板.实验板上常用的蜂鸣器为电磁式蜂鸣器.这两者最大的区别在于工作原理.下面详细介绍其工作原理. ...

  9. stm32无源蜂鸣器定时器_使用STM32控制无源蜂鸣器发声播放音乐

    [实例简介] 利用GPIO控制无源蜂鸣器发声,播放音乐.使用SysTick延时,使用位带操作寻址IO口引脚. [实例截图] [核心代码] pMusic ├── CMSIS │   ├── core_c ...

  10. 51单片机驱动无源蜂鸣器

    在学习过程中遇到如下例题:8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去. 流水灯的程序相对我个人来说比较简单,但是蜂鸣器有些难度,正 ...

最新文章

  1. nodejs png 转 rgb_90行代码,让微信登录界面的地球转起来
  2. mysql 8.0认证失败_解决mysql8.0因密码认证插件导致的链接不上
  3. Taro+react开发(35) 实现拖动
  4. spark学习-Spark的Map()和FlatMap()函数使用
  5. 基于MNIST数据集的Batch Normalization(批标准化层)
  6. 物联网将如何改善社会运行效率?
  7. 电商扣减库存_竞争激烈的电商市场,小型仓储外包服务解决了中小电商的后顾之忧...
  8. Linux基础命令1
  9. 巨人 index.php/user/login,dedecms实现首页顶部会员登陆框的方法
  10. 算法精解-C语言描述 递归和尾递归 (图解+实例)
  11. 怎样将计算机和电视机连接网络连接,家里怎么连接网络到电视机,让电脑和电视都可以上网...
  12. 【软件测试】什么样的项目适合做自动化测试?自动化测试有需要那些技术?
  13. 别人都是笑起来很好看,但是你却不一样,你是看起来很好笑。
  14. 基于人工智能(AI)的蛋白结构预测工具合集
  15. 曼谷旅游不可错过的游船体验:游览湄南河,赏两岸风光
  16. 重要极限一:x趋近于0,sinx/x的极限
  17. Spring的DI(依赖注入xml版)
  18. 爱情智慧:抓紧幸福的三个动作
  19. 2019校招春招面试问题汇总
  20. 图片如何无损放大?教你两种图片无损放大的方法

热门文章

  1. QQ音乐歌曲解析API接口
  2. 微信小程序生成分享海报
  3. CS 61A Environment Diagrams 学习笔记
  4. 隔空投送问题解决(高阶版)macbook以及iphone设备
  5. Deeping Learning学习与感悟——《深度学习工程师》_2
  6. “雪糕刺客”你听说过,Bitmap这个“内存刺客”你也要小心(上)~
  7. RFID的无线通信原理
  8. 网络规划设计师教程知识点精讲之计算机网络分类
  9. Python爬虫——下载韩寒博客文章
  10. 随机过程的概念以及统计特性(读书笔记)