STM32小实验三--让蜂鸣器响起来
1.实验目的
驱动蜂鸣器以 500ms 间隔鸣响。
2.硬件清单
- STM32
- ST-Link
- 蜂鸣器
3.硬件连接
4.代码
4.1beep.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
#ifndef __BEEP_H__
#define __BEEP_H__void beep_init(void);
void beep_on(void);
void beep_off(void);#endif
这个没什么可说的
4.3main.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秒响一次,也很简单。
完结