打印
[应用相关]

STM32 蜂鸣器报警

[复制链接]
306|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蜂鸣器  分有源蜂鸣器  和 无源蜂鸣器  低电平触发 高电平触发

这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的方波去驱动它,但是这使得无源蜂鸣器可以定制闹铃

低电平触发:是指I/O口接低电平即 Reset 时导通。



高电平触发:是指I/O口接高电平即set时导通。

原理和LED是一样的,只不过在接线的时候要接3.3v和GND

下面是beep.c文件代码

include "beep.h"
#include "sys.h"

//①定义初始化结构体
    GPIO_InitTypeDef gpio_initstruct;
//②初始化GPIO函数
void beep_init(void)
{
    //打开时钟
    __HAL_RCC_GPIOB_CLK_ENABLE();   //注意看硬件原理图中beep灯的引脚在哪一个组
    //调用GPIO初始化函数
    gpio_initstruct.Pin = GPIO_PIN_8;
    gpio_initstruct.Pull = GPIO_PULLUP;
    gpio_initstruct.Mode =GPIO_MODE_OUTPUT_PP;
    gpio_initstruct.Speed =GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOB,&gpio_initstruct);
    //关闭beep灯
    beep_off();

}

//③开启beep的函数
void beep_on(void)
{
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);    //RESET 为高电平

}
//④关闭beep的函数
void beep_off(void)
{
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);      //SET 为低电平

}


注意和LED唯一的区别就是不需要翻转函数。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_65107465/article/details/143981266

使用特权

评论回复
沙发
地瓜patch| | 2024-12-31 20:47 | 只看该作者
驱动需要加三极管

使用特权

评论回复
板凳
OKAKAKO| | 2024-12-31 21:09 | 只看该作者
IO驱动蜂鸣器

使用特权

评论回复
地板
LOVEEVER| | 2024-12-31 23:19 | 只看该作者
STM32 蜂鸣器报警IO控制的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

4119

帖子

0

粉丝