嵌入式系统原理实验四蜂鸣器(共3页)_第1页
嵌入式系统原理实验四蜂鸣器(共3页)_第2页
嵌入式系统原理实验四蜂鸣器(共3页)_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上实验四 蜂鸣器实验实验目的:控制 ALIENTEK 战舰 STM32 开发板上的蜂鸣器发出:“嘀”“ 嘀”的间隔声,进一步熟悉 STM32 IO 口的使用内容要点:1. 硬件介绍蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 战舰 STM32 开发板板载的蜂鸣器是电磁式的有源蜂鸣器这里的有源不是指电源的“源”,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声STM32的单个 IO 最大可以提

2、供 25mA 电流(来自数据手册),而蜂鸣器的驱动电流是 30mA 左右,两者十分相近,但是全盘考虑, STM32 整个芯片的电流,最大也就 150mA,如果用 IO 口直接驱动蜂鸣器,其他地方用电就得省着点了所以,我们不用 STM32 的 IO 直接驱动蜂鸣器, 而是通过三极管扩流后再驱动蜂鸣器,这样 STM32 的 IO 只需要提供不到 1mA 的电流就足够了。IO 口使用虽然简单,但是和外部电路的匹配设计,还是要十分讲究的,考虑越多,设计就越可靠,可能出现的问题也就越少。蜂鸣器在硬件上也是直接连接好了的, 不需要经过任何设置,直接编写代码就可以了。 蜂鸣器的驱动信号连接在 STM32 的

3、 PB8 上。图1 蜂鸣器与 STM32 连接原理图当 PB.8 输出高电平的时候,蜂鸣器将发声,当 PB.8 输出低电平的时候,蜂鸣器停止发声2. 软件设计可以直接打开本实验工程,也可以按下面的步骤在实验 1 的基础上新建蜂鸣器实验工程。 复制上一章的 LED 实验工程,然后打开 USER 目录,把目录下面工程 LED.uvprojx 重命名为 BEEP.uvprojx。,然后在 HARDWARE 文件夹下新建一个 BEEP 文件夹,用来存放与蜂鸣器相关的代码 将 beep.h 头文件的路径加入到工程里面一般的头文件有固定的格式,多个地方调用头文件会重复引用,为了避免头文件内容重复引用,一般

4、通过预编译的方式来写头文件。一般的格式如下:#ifndef _BEEP_H#define _BEEP_H#endif第一次调用时会将#define下面这一节全部定义,重复调用时,下面的东西就不会被引用。头文件里一般用来写函数声明或者宏定义,在源文件中再去定义具体的函数。#ifndef _BEEP_H#define _BEEP_Hvoid BEEP_Init(void);#endifbeep.h然后我们打开 USER 文件夹Template. uvprojx,大家可以将其重命名为 BEEP. uvprojx),按新建按钮新建一个文件,然后保存在 HARDWARE->BEEP 文件夹下面,保

5、存为 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_InitS

6、tructure.GPIO_Speed = GPIO_Speed_50MHz; /速度为 50MHzGPIO_Init(GPIOB, &GPIO_InitStructure); /根据参数初始化 GPIOB.8GPIO_ResetBits(GPIOB,GPIO_Pin_8); /输出 0,关闭蜂鸣器输出 这段代码 仅包含 1 个函数: void BEEP_Init(void),该函数的作用就是使能 PORTB 的时钟,同时配置 PB8 为推挽输出。 这里的初始化内容跟跑马灯实验几乎是一样的接下来,开始写main.c文件/蜂鸣器实验#include "stm32f10x.h&q

7、uot;#include "delay.h"#include "led.h" #include "beep.h" int main(void) delay_init(); /延时函数初始化 LED_Init(); /初始化与LED连接的硬件接口BEEP_Init(); /初始化蜂鸣器端口while(1)GPIO_ResetBits(GPIOE,GPIO_Pin_5); GPIO_ResetBits(GPIOB,GPIO_Pin_8);delay_ms(500);/延时300msGPIO_SetBits(GPIOE,GPIO_Pin_5); G

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论