博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蜂鸣器
阅读量:6547 次
发布时间:2019-06-24

本文共 1328 字,大约阅读时间需要 4 分钟。

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

源不是指电源的“源”,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声;无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz 左右的方波驱动,才干发声。

STM32

的单个 IO 最大能够提供 25mA 电流(来自数据手冊),而蜂鸣器的驱动电流是 30mA 左右,两者十分相近,可是全盘考虑,STM32 整个芯片的电流,最大也就 150mA,假设用 IO 口直接驱动蜂鸣器,其它地方用电就得省着点了…所以,我们不用 STM32 的 IO 直接驱动蜂鸣器,而是通过三极管扩流后再驱动蜂鸣器,这样 STM32 的 IO 仅仅须要提供不到 1mA 的电流就足够了。

蜂鸣器在硬件上也是直接连接好了的,不须要经过不论什么设置,直接编写代码就能够了。蜂鸣器的驱动信号连接在 STM32 的 PB8 上。

void BEEP_Init(void)

{
  GPIO_InitTypeDef  GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOBport时钟
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //BEEP-->PB.8 port配置
 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 为推挽输出。

Program Size: Code=4592 RO-data=336 RW-data=52 ZI-data=1836  

FromELF: creating hex file...

这里我们解释一下,编译结果里面的几个数据的意义:

Code:表示程序所占用 FLASH 的大小(FLASH)。
RO-data:即 Read Only-data,表示程序定义的常量,如 const 类型(FLASH)。
RW-data:即 Read Write-data,表示已被初始化的全局变量(SRAM)
ZI-data:即 Zero Init-data,表示未被初始化的全局变量(SRAM)

有了这个就能够知道你当前使用的 flash 和 sram 大小了,所以,一定要注意的是程序的大小不是.hex 文件的大小,而是编译后的 Code 和 RO-data 之和。

转载地址:http://eeedo.baihongyu.com/

你可能感兴趣的文章
Memcached分布式缓存-windows上初步使用-网摘
查看>>
IIS无法启动的问题
查看>>
如何通过结构中的某个变量获取结构本身的指针?(container_of详解)
查看>>
Android 关于mnt/sdcard和sdcard的区别
查看>>
特征变换(7)总结
查看>>
网络工程师之路怎么走?
查看>>
go语言unix域套接字发送udp报文
查看>>
2.并发和并行
查看>>
OpenGL学习(二)用户与交互
查看>>
神奇的代码-常见错误代码注意点
查看>>
[直播一揽子]编码构思和套路
查看>>
[直播一揽子]x264参数的解释
查看>>
iOS学习之Objective-C 2.0 运行时系统编程
查看>>
Exchange2007-Exchange2010升级-06 数据库高可用组的创建
查看>>
phpHiveAdmin是如何通过Hive/Hadoop工作的
查看>>
双向链表内结点的删除(4)
查看>>
项目总结
查看>>
JSON字符串转成对象
查看>>
SaltStack 中ZMQ升级
查看>>
exchange 2013 提示“HTTP 500内部服务器错误”
查看>>