网站整合营销等服务沧县网站建设价格
2026/6/12 4:37:40 网站建设 项目流程
网站整合营销等服务,沧县网站建设价格,免费手机端网站模板,wordpress插件使用模板一、实验目的及要求1、掌握GPIO及其输出的识别方法。2、熟悉蜂鸣器和STM32微控制器的接口方法。3、了解蜂鸣器的工作原理及硬件电路。二、实验内容及原理蜂鸣器是一种一体化结构的电子讯响器#xff0c;采用直流电压供电#xff0c;广泛应用于计算机、打印机、 复印机、报警器…一、实验目的及要求1、掌握GPIO及其输出的识别方法。2、熟悉蜂鸣器和STM32微控制器的接口方法。3、了解蜂鸣器的工作原理及硬件电路。二、实验内容及原理蜂鸣器是一种一体化结构的电子讯响器采用直流电压供电广泛应用于计算机、打印机、 复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣 器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。STM32F103 战舰开发板板载的蜂鸣器是电磁式的有源蜂鸣器如图3.1 所示图3.1 有源蜂鸣器这里的有源不是指电源的“源”而是指有没有自带震荡电路有源蜂鸣器自带了震荡电路 一通电就会发声无源蜂鸣器则没有自带震荡电路必须外部提供 2-5Khz 左右的方波驱动 才能发声。上一实验我们利用 STM32 的 I/O 口直接驱动 LED 灯本节的蜂鸣器我们能否直接用 STM32 的I/O 口驱动呢让我们来分析一下STM32F1 的单个I/O最大可以提供 25mA 电流来自数据 手册而蜂鸣器的驱动电流是30mA左右两者十分相近但是全盘考虑STM32F1 整个芯 片的电流最大也就 150mA如果用I/O口直接驱动蜂鸣器其他地方用电就得省着点了所 以我们不用 STM32F1的I/O直接驱动蜂鸣器 而是通过三极管扩流后再驱动蜂鸣器这样 STM32F1的I/O只需要提供不到 1mA 的电流就足够了。I/O 口使用虽然简单但是和外部电路的匹配设计还是要十分讲究的考虑越多设计就 越可靠可能出现的问题也就越少。三、实验条件及设备要求硬件环境计算机一台正点原子战舰STM32F103开发板四、实验步骤1硬件设计1例程功能蜂鸣器每隔 300ms 响或者停一次。LED0 每隔 300ms 亮或者灭一次。LED0 亮的时候蜂鸣器不叫而 LED0 熄灭的时候蜂鸣器叫。2硬件资源1LED 灯LED - PB52蜂鸣器BEEP - PB83原理图蜂鸣器在硬件上是直接连接好了的不需要经过任何设置直接编写代码就可以了。蜂鸣 器的驱动信号连接在 STM32F1 的 PB8 上。如图 3.2 所示图 3.2 蜂鸣器与 STM32F1 连接原理图我们用一个 NPN 三极管S8050来驱动蜂鸣器驱动信号通过 R36 和 R38 间的电压获 得芯片上电时默认电平为低电平故上电时蜂鸣器不会直接响起。当 PB8 输出高电平的时候 蜂鸣器将发声当 PB8 输出低电平的时候蜂鸣器停止发声。2.软件设计本实验用到 GPIO 外设输出功能关于 HAL 库的 GPIO 的 API 函数请看跑马灯实验的介绍。下面是本实验的程序流程图。图 3.3 蜂鸣器实验程序流程图2.1 程序设计1工程文件创建步骤打开STM32CubeMX2main.c 文件代码#include stm32f10x.h#include led.h#include delay.h#include beep.hint main(void){delay_init();LED_Init();Beep_Init();while(1){//库函数GPIO_ResetBits(GPIOB, GPIO_Pin_5);//LED1点亮蜂鸣器不响GPIO_SetBits(GPIOE, GPIO_Pin_5);GPIO_ResetBits(GPIOB, GPIO_Pin_8);delay_ms(300);GPIO_SetBits(GPIOB, GPIO_Pin_5);//LED2点亮蜂鸣器响GPIO_ResetBits(GPIOE, GPIO_Pin_5);GPIO_SetBits(GPIOB, GPIO_Pin_8);delay_ms(300);//位操作// PBout(5)0;// PEout(5)1;// PBout(8)0;// delay_ms(300);// PBout(5)1;// PEout(5)0;// PBout(8)1;// delay_ms(300);}}3gpio.c文件代码#include beep.h#include stm32f10x.hvoid Beep_Init(void){GPIO_InitTypeDef GPIO_Initstr;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);//时钟使能GPIO_Initstr.GPIO_ModeGPIO_Mode_Out_PP;GPIO_Initstr.GPIO_PinGPIO_Pin_8;GPIO_Initstr.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOB, GPIO_Initstr);GPIO_ResetBits(GPIOB, GPIO_Pin_8);//初始化蜂鸣器关闭}3.下载验证五、实验总结本次STM32蜂鸣器实验完成了基于STM32单片机控制蜂鸣器发声的核心功能验证通过配置GPIO口为输出模式利用高低电平切换或PWM信号实现了蜂鸣器的通断及音调调节掌握了STM32 GPIO口的基本配置方法和蜂鸣器的驱动原理过程中验证了硬件电路连接的正确性和软件代码逻辑的可行性同时发现需注意GPIO口电平匹配、延时函数精准度对蜂鸣器发声效果的影响实验达到了熟悉STM32外设控制流程、理解简单输出设备驱动方式的目的。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询