stm32f103蜂鸣器报警代码
时间: 2025-01-04 16:30:39 浏览: 12
STM32F103是一款基于ARM Cortex-M3内核的微控制器,常用于嵌入式系统中。要让STM32F103通过蜂鸣器进行报警,首先需要配置GPIO作为输入输出控制,并连接蜂鸣器。下面是一个简单的示例代码,使用HAL库来驱动蜂鸣器:
```c
#include "stm32f10x.h"
#include "stm32f1xx_hal.h"
// 定义蜂鸣器GPIO口
#define GPIO_PIN_Buzzer GPIO_Pin_9
#define GPIO_PORT_Buzzer GPIO_PortD
void setup_buzzer(void) {
GPIO_InitTypeDef gpio_init = {0};
// 初始化GPIO口
gpio_init.Pin = GPIO_PIN_Buzzer;
gpio_init.Mode = GPIO_MODE_OUTPUT_PP; // Push-Pull输出模式
gpio_init.Pull = GPIO_NOPULL; // 上拉下拉无
HAL_GPIO_Init(GPIO_D, &gpio_init);
}
void beep(int duration_ms) {
uint8_t delay_us = (duration_ms * 1000) / 4; // 蜂鸣器频率一般较高,所以延时适当缩短
HAL_GPIO_WritePin(GPIO_D, GPIO_PIN_Buzzer, GPIO_PIN_SET); // 设置高电平
HAL_Delay(delay_us); // 延迟指定时间
HAL_GPIO_WritePin(GPIO_D, GPIO_PIN_Buzzer, GPIO_PIN_RESET); // 设置低电平
HAL_Delay(delay_us); // 再次延时
}
int main(void) {
setup_buzzer();
while (1) {
beep(500); // 持续报警500毫秒
HAL_Delay(500); // 等待500毫秒后再次报警
}
}
阅读全文