STM32小实验三--让蜂鸣器响起来

1.实验目的

驱动蜂鸣器以 500ms 间隔鸣响。

2.硬件清单

  • STM32
  • ST-Link
  • 蜂鸣器

3.硬件连接

4.代码

4.1beep.c

c 复制代码
#include "beep.h"
#include "sys.h"
//初始化GPIO函数
void beep_init(void)
{
    GPIO_InitTypeDef gpio_initstruct;
    //打开时钟
    __HAL_RCC_GPIOA_CLK_ENABLE();
    //调用GPIO初始化函数
    gpio_initstruct.Pin = GPIO_PIN_8;
    gpio_initstruct.Mode = GPIO_MODE_OUTPUT_PP;
    gpio_initstruct.Pull = GPIO_PULLUP;
    gpio_initstruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOA,&gpio_initstruct);
    //关闭蜂鸣器
    beep_off();
}
//打开蜂鸣器的函数
void beep_on(void)
{
    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_RESET);
}
//关闭蜂鸣器的函数
void beep_off(void)
{
    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET);
}

这个代码和点亮LED的代码几乎一模一样,我将函数的名字都换为了beep,然后是驱动GPIOA的8引脚驱动蜂鸣器。

4.2beep.h

c 复制代码
#ifndef __BEEP_H__
#define __BEEP_H__

void beep_init(void);
void beep_on(void);
void beep_off(void);

#endif

这个没什么可说的

4.3main.c

c 复制代码
#include "sys.h"
#include "delay.h"
#include "beep.h"
int main(void)
{
    HAL_Init();                         /* 初始化HAL库 */
    stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */
    beep_init();
    while(1)
    { 
        beep_on();
        delay_ms(500);
        beep_off();
        delay_ms(500);
    }
}
 

这个就是让蜂鸣器间隔0.5秒响一次,也很简单。
完结

相关推荐
东京老树根7 小时前
Arduino - 入门02 - Arduino编程基础 Arduino程序结构,实物与模拟器对照,Arduino常用函数
单片机·机器人
salipopl10 小时前
基于STM32平台的多旋翼无人机系统设计与实现
stm32·嵌入式硬件·无人机
iCxhust17 小时前
8086/8088单板机VSCode集成自动下载功能(完善串口接收显示版)
ide·vscode·单片机·编辑器·微机原理·8088单板机·8086单板机
振南的单片机世界18 小时前
从数码管到点阵屏:动态扫描加595,3个IO驱动256个LED
stm32·单片机·嵌入式硬件
listhi52019 小时前
STC8 16通道模拟采集 + 4路串口 + 8路PWM 程序
stm32·单片机·嵌入式硬件
星夜夏空9919 小时前
STM32单片机学习(4)——嵌入式概述
stm32·单片机·学习
Deitymoon20 小时前
STM32——OLED显示字符串
单片机·嵌入式硬件
LCG元20 小时前
STM32实战:基于STM32F407的FFT频谱分析(音频信号处理)
stm32·音视频·信号处理
Graceful_scenery20 小时前
龙芯2k0300 - 走马观碑组按键驱动移植
单片机·嵌入式硬件
d111111111d20 小时前
MQTT+STM32+ESP8266网络程序分层+韦老师
笔记·stm32·单片机·嵌入式硬件·学习·php