一、硬件设计

蜂鸣器为有源蜂鸣器,当 PF.8 输出高电平的时候,蜂鸣器将发声,当 PF.8 输出低电平的时候,蜂鸣器停止发声,硬件原理图如下

二、软件设计

1、新建beep.c文件
打开keil软件中上一节的LED模板,建一个文件,然后保存在HARDWARE→BEEP 文件夹下面,保存为 beep.c。

在beep.c中输入如下代码

#include "stm32f4xx.h"
//BEEP IO初始化
void BEEP_Init(void)
{        GPIO_InitTypeDef  GPIO_InitStructure;//配置GPIO所用的结构体RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//时钟使能函数,PF8为输出口,所以使能这两个口的时钟,GPIOF又在AHB1总线下,所以调用AHB1函数//GPIOF8初始化设置GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;//BEEP所对应的IO口GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHzGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//下拉,在硬件原理图中看出下拉beep停止发声GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化GPIOGPIO_ResetBits(GPIOF,GPIO_Pin_8);//GPIOF8拉低}

点击保存,这只是保存在本地文件夹中,但此时beep.c还没有加入到工程中,双击HARDWARE文件夹,将beep.c添加到工程中可以看到HARDWARE文件夹下的文件

2、新建beep.h头文件
用同样的方式新建头文件,输入代码如下

#ifndef __BEEP_H
#define __BEEP_Hvoid BEEP_Init(void);#endif

再把头文件添加到工程中

3、主函数代码

#include "stm32f4xx.h"//顶层头文件
#include "led.h"
#include "delay.h"
#include "beep.h"int main ()
{delay_init(168);//初始化延时函数,此模板默认设置是168BEEP_Init();//初始化BEEPLED_Init();//初始化ledwhile(1){PFout(9) = 1;//拉高,LED灭GPIO_SetBits(GPIOF,GPIO_Pin_8);//拉高,BEEP响delay_ms(500);PFout(9) = 0;//拉低,亮GPIO_ResetBits(GPIOF,GPIO_Pin_8);//GPIOF8拉低delay_ms(500);}
}

将程序编译烧录进开发板可以看到led跟随蜂鸣器响停闪烁。

正点原子stm32F407学习笔记3——蜂鸣器实验相关推荐

  1. 正点原子stm32F407学习笔记1——新建工程模板

    一.基于固件库 1.新建文件夹 新建一个Template文件夹,在此文件夹下新建五个子文件夹 2.打开keil软件,点击菜单栏Project –>New Uvision Project,如果有其 ...

  2. 正点原子stm32F407学习笔记4——按键输入实验

    一.硬件连接 KEY0.KEY1 和 KEY2 是低电平有效的,而 KEY_UP 是高电平有效,并且外部都没有上下拉电阻,所以,需要在 STM32F4 内部设置上下拉. 二.软件设计 参考蜂鸣器一节新 ...

  3. 正点原子stm32F407学习笔记2——GPIO操作跑马灯实验

    一.库函数版本 1.硬件原理图 2.软件设计 打开上一节新建的库函数版本工程模板,直接点击工程下面的 USER 目录下面的 Template.uvproj. 跑马灯实验我们主要用到的固件库文件是: s ...

  4. STM32F4(正点原子)学习笔记(一):GPIO及其小实验

    目录 一.写在前面: 二.GPIO基本情况 1.概述 2.引脚说明 3.GPIO工作方式 (1)4种输入模式 (2)4种输出模式 (3)4种最大输出速度 (4)主要特性 4.GPIO相关配置寄存器 三 ...

  5. 正点原子STM32F103ZET6学习笔记-新建库函数工程模板

    STM32F10x系列官方固件包免费下载链接 新建STM32工程 步骤一:创建工程文件 1,新建工程目录temp 2,在工程目录temp下面新建四个文件夹 (1)USER:存放工程文件(templat ...

  6. 正点原子STM32F103学习笔记(六)——时钟系统

    时钟系统 RCC: reset clock control 复位和时钟控制器. 注意: 任何一个外设在使用之前,必须首先使能其相应的时钟 时钟系统框图 图形含义 梯形灰色方块:选择器 蓝色框:时钟源 ...

  7. stm32f407 6路串口dma如何配置_stm32cubeMX学习十、扫码模块程序开发(基于正点原子STM32F407开发板)...

    本程序编写基于正点原子STM32F407开发板. 本文使用的扫码模块是下面这个品牌. 扫码模块的应用场景非常广泛,我们可以上百度搜索一下: 等等. 今天就来说说如何在开发板上实现控制它吧,打开数据手册 ...

  8. STM32学习笔记:按键实验

    STM32学习笔记:按键实验 一.所使用的函数 1.时钟使能函数 RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState New ...

  9. 【STM32F407学习笔记】GPIO(一)

    [STM32F407学习笔记]GPIO(一) 1. GPIO基础知识 1.1 GPIO工作方式 1.2 GPIO相关配置寄存器 1.2.1 端口模式寄存器:GPIOx_MODER 1.2.2 输出类型 ...

最新文章

  1. python实现最长公共子序列的求解
  2. python3(十五)np.linalg.norm
  3. 使用gulp-connect实现web服务器
  4. jakarta ee_关于Jakarta EE软件包名称更改的思考
  5. 爬虫-post请求-RR网的登陆页-草稿-关注js反爬虫手法-只看不钻
  6. BZOJ 4242 水壶(BFS建图+最小生成树+树上倍增)
  7. py 的 第 19 天
  8. 如何在Python中创建常量?
  9. Android音视频【一】H264编码基础
  10. 一种手机保密桌面的想法
  11. 服务器账号永不过期,linux下如何设置用户密码永不过期_网站服务器运行维护
  12. HCIE大师之路(四)——OSPF双塔奇兵综合实验
  13. word_大纲视图/导航视图/设置标题时需要注意(不成功的原因)
  14. 史上最酷的java音乐播放器,swing编写,炫酷界面
  15. python+selenium自动化软件测试(第1章)
  16. 1.3 PyCharm下载
  17. 计算机管理中其它设备问号,Win10设备管理器中设备上有白色问号如何解决
  18. 线性代数 范数_计算数据科学的向量p范数线性代数iv
  19. 知道自己无知才会进步
  20. HTML中的 后代选择器 和 子代选择器

热门文章

  1. 解决element-ui表单中限制输入纯数字的问题
  2. 数据结构复习题集(客观题)
  3. navicat连接出现ORA-01017: invalid username/password
  4. IDEA中Git及可视化工具TortoiseGit简单使用
  5. ROS工程师等级证书(初级)报名要求
  6. 放弃谷歌实习转投ICC,我是如何曲线上岸G家的?
  7. 学堂在线答案计算机应用基础,《计算机应用基础》离线作业答案
  8. java围棋代码_围棋源代码Java_Applet小程序
  9. oracle医务室管理系统代码,三甲医院管理系统HIS(C#版源代码) 源码大小28M
  10. 最全最走心:模电-模拟电子技术 复试/面试知识点大总结 (已更完)