找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2807|回复: 9
打印 上一主题 下一主题
收起左侧

stm32F4驱动蜂鸣器有关问题

[复制链接]
跳转到指定楼层
楼主
ID:720168 发表于 2021-2-7 10:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
某个宝买了一个有源蜂鸣器模块。在stm32F4的板子上直接置高电平 GPIO_SetBits(GPIOF,GPIO_Pin_8); 蜂鸣器就会很响。

但是在51单片机上 sbit beep=P1^5; beep=1就不会响,一定要取反加个延时 这样: beep = ~beep;  delay(10);才会响,而且比较小声。这是为什么呢?


我个人想实现按键一次蜂鸣器响一次,在STM32可以听到很大声,在51单片机基本上就一点点声几乎听不见。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:720168 发表于 2021-2-7 11:07 | 只看该作者
是不是51单片机给的高电平不够高?
回复

使用道具 举报

板凳
ID:359272 发表于 2021-2-7 13:06 | 只看该作者
最好通过三极管来驱动,单片机的IO口驱动电流比较小
回复

使用道具 举报

地板
ID:811405 发表于 2021-2-7 13:39 | 只看该作者
蜂鸣器依靠振动发出声响,振动频率不同,声音效果也不一样,beep直接等于1,输出电平不发生改变,就不能让蜂鸣器发声,beep=~beep时,高低电平不断改变,使蜂鸣器产生振动从而发出声音,声音效果不仅和电平高低有关还与高低电平变化频率有关
回复

使用道具 举报

5#
ID:429356 发表于 2021-2-7 14:44 | 只看该作者
本帖最后由 小文文 于 2021-2-7 14:53 编辑

蜂鸣器分有源和无源蜂鸣器,有源蜂鸣器直接给他上电就可以响,无源呢是靠震动响的,所以得高低电平不断出现,声调的高低和频率有关也就是你给得延时多久有关。蜂鸣器是需要驱动的,单片机出来的信号电流太小了,你得加个驱动放大电路,三极管就可以。你可以到网百度一下,单片机接无源蜂鸣器原理图。
回复

使用道具 举报

6#
ID:342822 发表于 2021-2-7 15:24 | 只看该作者
51端口提供的电流很小,蜂鸣器直接端口会将电压拉低。加一个三极管扩流就OK了
回复

使用道具 举报

7#
ID:883242 发表于 2021-2-7 15:31 | 只看该作者
你去查下51的高电平输出能力。原始版本51用输出弱上拉实现双向口,即可以输入也可以输出,肯定推不动蜂鸣器。现代51很可能大不一样了,可以设置强推挽模式。这需要你自己去查你用的51具体手册了。
回复

使用道具 举报

8#
ID:743654 发表于 2021-2-8 09:00 | 只看该作者
跟IO口的驱动能力有关,不同单片机IO口输出电流有差异。
回复

使用道具 举报

9#
ID:420836 发表于 2021-2-9 09:57 | 只看该作者
STM32具有比51系列单片机更好的电流驱动能力
回复

使用道具 举报

10#
ID:414556 发表于 2021-2-12 15:25 | 只看该作者
51的引脚设置成强推挽输出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表