用stm32f103写一个蜂鸣器
时间: 2023-05-27 21:01:55 浏览: 450
stm32f103的蜂鸣器程序
5星 · 资源好评率100%
以下是使用STM32F103的代码示例,将蜂鸣器连接到PB11引脚:
```c
#include "stm32f10x.h"
void delay_ms(int ms)
{
int i, j;
for(i = 0; i < ms; i++)
{
for(j = 0; j < 1000; j++);
}
}
void buzzer_on(void)
{
GPIO_SetBits(GPIOB, GPIO_Pin_11); // 设置PB11为高电平
}
void buzzer_off(void)
{
GPIO_ResetBits(GPIOB, GPIO_Pin_11); // 设置PB11为低电平
}
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOB
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; // 配置PB11
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 最大输出频率为50MHz
GPIO_Init(GPIOB,&GPIO_InitStructure); // 初始化GPIOB11
while(1)
{
buzzer_on(); // 打开蜂鸣器
delay_ms(500); // 延时500ms
buzzer_off(); // 关闭蜂鸣器
delay_ms(500); // 延时500ms
}
}
```
在代码中,我们首先需要定义延时函数来控制蜂鸣器开/关的时间长度。然后,在`main`函数中,在PB11上配置GPIO模式为输出模式,然后不断循环地打开和关闭蜂鸣器。注意,这只是一个简单的示例,你可以根据你的需求修改代码以实现更多功能。
阅读全文