STM32有源蜂鸣器代码
时间: 2023-08-21 14:10:25 浏览: 161
您好!以下是一个使用STM32的定时器和GPIO配置的简单示例代码,用于驱动一个有源蜂鸣器:
```c
#include "stm32f4xx.h"
#define BEEP_PIN GPIO_Pin_0
#define BEEP_PORT GPIOA
#define BEEP_RCC RCC_AHB1Periph_GPIOA
void BEEP_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(BEEP_RCC, ENABLE);
GPIO_InitStructure.GPIO_Pin = BEEP_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(BEEP_PORT, &GPIO_InitStructure);
}
void BEEP_On(void)
{
GPIO_SetBits(BEEP_PORT, BEEP_PIN);
}
void BEEP_Off(void)
{
GPIO_ResetBits(BEEP_PORT, BEEP_PIN);
}
int main(void)
{
BEEP_Init();
while(1)
{
BEEP_On();
delay_ms(500);
BEEP_Off();
delay_ms(500);
}
}
```
在代码中,我们首先需要初始化有源蜂鸣器所连接的GPIO引脚,然后通过控制GPIO引脚的电平来控制蜂鸣器的开关状态。在主函数中,我们使用一个简单的循环来让蜂鸣器周期性地发出声音。
请注意,示例代码中的`delay_ms`函数需要根据您的具体开发板和系统时钟频率进行实现。您可以使用定时器或者延时函数来实现适当的延时。
希望对您有所帮助!如有任何问题,请随时提问。
阅读全文