驱动蜂鸣器STM32代码
时间: 2023-09-20 14:07:23 浏览: 63
以下是使用STM32驱动蜂鸣器的示例代码:
```c
#include "stm32f4xx.h"
#define BUZZER_PIN GPIO_Pin_5
#define BUZZER_PORT GPIOA
void Buzzer_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = BUZZER_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(BUZZER_PORT, &GPIO_InitStructure);
}
void Buzzer_On(void)
{
GPIO_SetBits(BUZZER_PORT, BUZZER_PIN);
}
void Buzzer_Off(void)
{
GPIO_ResetBits(BUZZER_PORT, BUZZER_PIN);
}
int main(void)
{
Buzzer_Init();
while(1)
{
Buzzer_On();
for(int i = 0; i < 1000000; i++); // 持续一段时间
Buzzer_Off();
for(int i = 0; i < 1000000; i++); // 持续一段时间
}
}
```
该代码使用了STM32的GPIO模块来控制蜂鸣器,其中`Buzzer_Init()`函数用于初始化蜂鸣器引脚,`Buzzer_On()`函数用于打开蜂鸣器,`Buzzer_Off()`函数用于关闭蜂鸣器。
在`main()`函数中,通过循环控制蜂鸣器的开关状态来产生一段持续的蜂鸣声。
阅读全文