实验四 蜂鸣器实验

实验目的:

控制 ALIENTEK 战舰 STM32 开发板上的蜂鸣器发出:“嘀”…“ 嘀”…

的间隔声,进一步熟悉 STM32 IO 口的使用

内容要点:

1. 硬件介绍

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、 打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中 作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

战舰 STM32 开发板板载的蜂鸣器是电磁式的有源蜂鸣器

这里的有源不是指电源的“源”,而是指有没有自带震荡电路,

有源蜂鸣器自带了震荡电路,一通电就会发声

STM32 的单个 IO 最大可以提供 25mA 电流(来自数据手册)

,而蜂鸣器的驱动电流是 30mA 左右,两者十分相近,但是全盘考虑, STM32 整 个芯片的电流,最大也就 150mA,如果用 IO 口直接驱动蜂鸣器,其他地方用电就 得省着点了…所以,我们不用 STM32 的 IO 直接驱动蜂鸣器, 而是通过三极管扩 流后再驱动蜂鸣器,这样 STM32 的 IO 只需要提供不到 1mA 的电流就足够了。IO 口使用虽然简单,但是和外部电路的匹配设计,还是要十分讲究的,考虑越多,设计 就越可靠,可能出现的问题也就越少。

蜂鸣器在硬件上也是直接连接好了的, 不需要经过任何设置,直接编写代码就 可以了。 蜂鸣器的驱动信号连接在 STM32 的 PB8 上。

图 1 蜂鸣器与 STM32 连接原理图

当 PB.8 输出高电平的时候,蜂鸣器将发声,当 PB.8 输出低电平的时候,蜂鸣器停止发 声

2. 软件设计

可以直接打开本实验工程,也可以按下面的步骤在实验 1 的基础上新建蜂鸣器实验工程。 复制上一章的 LED 实验工程,然后打开 USER 目录,把目录下面工程 LED.uvprojx 重 命名为 BEEP.uvprojx。,然后在 HARDWARE 文件夹下新建一个 BEEP 文件夹,用来存 放与蜂鸣器相关的代码

Comment [u1]: beep.h#ifndef

Comment [u1]: beep.h

#ifndef __BEEP_H

#define __BEEP_H

void BEEP_Init(void);

#endif

将 beep.h 头文件的路径加入到工程里面

一般的头文件有固定的格式,多个地方调用头文件会重复引用,为了避免头文件内容 重复引用,一般通过预编译的方式来写头文件。一般的格式如下:

#ifndef __BEEP_H

#define __BEEP_H

……

#endif

第一次调用时会将#define 下面这一节全部定义,重复调用时,下面的东西就不 会被引用。

头文件里一般用来写函数声明或者宏定义,在源文件中再去定义具体的函数。

然后我们打开 USER 文件夹 Template. uvprojx,大家可以将其重命名为 BEEP. uvprojx),按新建按钮新建一个文件,然后保存在 HARDWARE->BEEP 文件夹下 面,保存为 beep.c。在该文件中输入如下代码:

#include "beep.h"

void BEEP_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

//使能 GPIOB 端口时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //BEEP-->GPIOB.8 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度为 50MHz GPIO_Init(GPIOB, &GPIO_InitStructure); // 根据参数初始化 GPIOB.8 GPIO_ResetBits(GPIOB,GPIO_Pin_8); //输出 0,关闭蜂鸣器输出

} }

这段代码 仅包含 1 个函数: void BEEP_Init(void),该函数的作用就是使能 PORTB 的时钟,同时配置 PB8 为推挽输出。 这里的初始化内容跟跑马灯实验几乎是一样的 接下来,开始写 main.c 文件

//蜂鸣器实验

#include "stm32f10x.h"

#include "delay.h"

#include "led.h"

#include "beep.h"

int main(void)

{

delay_init(); //延时函数初始化

LED_Init(); //初

嵌入式linux系统蜂鸣器实验,嵌入式系统原理实验四蜂鸣器.docx相关推荐

  1. 嵌入式linux界面开发,基于嵌入式Linux平台实现GUI系统的设计方案

    描述 嵌入式图形用户界面( GUI, Graphic UserInterface)系统作为嵌入式系统中的一大关键技术,为用户提供设备的控制接口,其性能的好坏,界面的美观程度,影响着用户对产品的购买意愿 ...

  2. 杭州嵌入式linux培训机构,杭州嵌入式培训|嵌入式软件培训|嵌入式编程|杭州linux培训-和盈...

    技术名称 知识要点 学习目的 Linux操作系统 Linux介绍与安装 Linux基本命令操作 文件系统管理 用户管理 权限管理 网络配置 常用文本处理工具 搭建Samba服务器 搭建FTP服务器 搭 ...

  3. 嵌入式linux电子设计,基于嵌入式Linux的PMP系统设计与实现

    PMP系统简介 便携式多媒体播放器(PMP),也就是通常人们所说的MP4,已成为继MP3以后消费类产品的一个新热点.PMP的主要优点是:携带方便,能够直接播放高品质音/视频文件:也可以浏览图片,以及作 ...

  4. 嵌入式linux的发展历程,嵌入式Linux论文(历史发展分类及应用)

    嵌入式Linux 一.嵌入式Linux简介 1.1 嵌入式Linux历史 随着社会的发展,信息化技术的成熟和数字化产品的普及,让以计算机技术.芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用 ...

  5. 微型计算机原理实验心得,微机原理实验心得体会.doc

    微机原理实验心得体会 PAGE PAGE 20 微机原理实验心得体会 篇一:微机原理实验总结微机原理实验总结不知不觉,微机原理与接口技术实验课程已经结束了.回想起来受益匪浅,主要是加深了对计算机的一些 ...

  6. 配置微型计算机实验报告,微型计算机原理实验报告.docx

    微型计算机原理实验报告 微型计算机原理实验报告专业班级: 通信工程2013级 学生姓名: 周博文 学 号: 2013221105200097 完成时间: 2015月12月 实验一 运行并分析Hello ...

  7. 微型计算机原理实验心得,微机原理实验心得体会

    好文网为大家准备了关于微机原理实验心得体会的文章,好文网里面收集了五十多篇关于好微机原理实验心得体会好文,希望可以帮助大家.更多关于微机原理实验心得体会内容请关注好文网.ctrl+D请收藏!篇一:微机 ...

  8. 北邮嵌入式linux开发,北邮嵌入式系统实验报告完整版

    北邮嵌入式系统实验报告完整版 北京邮电大学 嵌入式系统实验 实验报告 学院:电子工程学院 专业:电子信息科学与技术 班级:班 学号: 姓名: 2013年11月13日 一.实验目的 1.基本实验 搭建P ...

  9. 嵌入式linux程序加密,基于嵌入式操作系统uClinux实现网络安全加密系统的设计

    金融安全支付系统是专门针对金融领域应用需求,实现小型化.便捷.安全的自助交易的软硬件平台,能够为多种应用提供高速安全服务,解决目前交易信息在传输过程中存在的各种安全问题,实现金融信息的安全交易.基于该 ...

  10. 嵌入式linux开发环境 cpu,嵌入式Linux开发环境的搭建之:U-Boot移植-嵌入式系统-与非网...

    5.2  U-Boot移植 5.2.1  Bootloader介绍 1.概念 简单地说,Bootloader就是在操作系统内核运行之前运行的一段程序,它类似于PC机中的BIOS程序.通过这段程序,可以 ...

最新文章

  1. 人工智能时代,为什么很多人都看好Python的发展?
  2. 推荐算法炼丹笔记:推荐系统采样评估指标及线上线下一致性问题
  3. eclipse软件有时会退出弹出一串错误弹框_修复iPhone上的iOS 13软件更新失败错误...
  4. 关于多条id相同,只取其中一条记录的sql语句
  5. 了解Stack Overflow,这是您获得编程和调试知识的途径
  6. C#的引用类型有四种类、代表、数组、接口
  7. 【Python成长之路】来聊聊多线程的几位“辅助”
  8. dll domodal运行时异常_解决装备疑难,计算机丢失***.dll文件方法「设计画圈」
  9. 得到 jason中 string 的值_简单高性能的Json解析器: Jason
  10. Citrix HDX 3D Pro - 注意事项 - 2017H1
  11. DynamipsGUI小凡模拟器VPCS的DHCP功能
  12. 大众CEO提前“毕业”,马斯克:软件是通向未来的关键
  13. 关于加速器加速后进入游戏显示WiFi功能丢失的解决方法(maybe)
  14. 转 C++压缩解压之snappy
  15. 业务流水号(交易号)生成方法
  16. 基于Matlab的三角函数方程组解算方法
  17. 【序列建模】DIN深度兴趣网络
  18. 【转】MAPI over HTTP协议
  19. easypoi导入excel
  20. android 瀑布流 空白,Android瀑布流优化,解决Recyclerview展示大批量图片时Item自动切换、闪烁、空白等问题...

热门文章

  1. App推广渠道统计二维码扫码统计 - Xinstall
  2. 如何用计算机制作pop海报,手绘POP海报的制作 -电脑资料
  3. 淘宝双十一自动做任务方案
  4. 海思3518E开发笔记1.2——海思SDK脚本学习
  5. python求和1到100_python实现1加到100
  6. python计算梯形面积_Python代码分享:面积计算器3.0代码
  7. Vue - 中文汉字转拼音(工具函数封装)
  8. 使用maven引用第三方jar包
  9. docker deamon源码学习
  10. 如何用js计算是否为闰年