srm32f4按键蜂鸣器_STM32f4---蜂鸣器实验代码

srm32f4按键蜂鸣器_STM32f4---蜂鸣器实验代码

2023年7月14日发(作者:)

srm32f4按键蜂鸣器_STM32f4---蜂鸣器实验代码beep.c⽂件下代码:#include "beep.h"//初始化PF8为输出⼝//BEEP IO 初始化void BEEP_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能 GPIOF时钟//初始化蜂鸣器对应引脚 GPIOF8GPIO__Pin = GPIO_Pin_8;GPIO__Mode = GPIO_Mode_OUT;//普通输出模式GPIO__OType = GPIO_OType_PP;//推挽输出GPIO__Speed = GPIO_Speed_100MHz;//100MHzGPIO__PuPd = GPIO_PuPd_DOWN;//下拉GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化 GPIOGPIO_ResetBits(GPIOF,GPIO_Pin_8); //蜂鸣器对应引脚GPIOF8 拉低,}这段代码 仅包含1个函数: void BEEP_Init(void),该函数的作⽤就是使能PORTF的时钟,然后调⽤GPIO_Init函数, 配置PF8为推挽输出。 IO⼝的初始化跟上⼀讲跑马灯实验⾮常类似,这⾥我们就不做过多讲解。保存 beep.c代码,然后我们按同样的⽅法,新建⼀个beep.h ⽂件,也保存在BEEP ⽂件夹下⾯。在 beep.h中输⼊如下代码:#ifndef __BEEP_H#define __BEEP_H#include "sys.h"//LED 端⼝定义#define BEEP PFout(8) // 蜂鸣器控制 IOvoid BEEP_Init(void);//初始化#endif和上⼀章⼀样,我们这⾥还是通过位带操作来实现某个 IO ⼝的输出控制,BEEP 就直接代表了PF8 的输出状态。我们只需要令BEEP=1,就可以让蜂鸣器发声。回到主界⾯,在main.c⾥⾯编写如下代码:#include "sys.h"#include "delay.h"#include "usart.h"#include "led.h"#include "beep.h"int main(void){delay_init(168); //初始化延时函数LED_Init(); //初始化 LED 端⼝BEEP_Init(); //初始化蜂鸣器端⼝while(1){GPIO_ResetBits(GPIOF,GPIO_Pin_9); // DS0拉低,亮 等同 LED0=0;GPIO_ResetBits(GPIOF,GPIO_Pin_8); //BEEP引脚拉低, 等同 BEEP=0;delay_ms(300); //延时300msGPIO_SetBits(GPIOF,GPIO_Pin_9); // DS0拉⾼,灭 等同LED0=1;GPIO_SetBits(GPIOF,GPIO_Pin_8); //BEEP引脚拉⾼, 等同BEEP=1;delay_ms(300); //延时 300ms}}注意要将 BEEP ⽂件夹加⼊头⽂件包含路径,不能少,否则编译的时候会报错。这段代码就是通过库函数GPIO_ResetBits和 GPIO_SetBits两个函数实现前⾯7.1节所阐述的功能,同时加⼊了 DS0(LED0)的闪烁来提⽰程序运⾏(后⾯的代码,我们基本都会加⼊这个) ,整个代码⽐较简单。本⽹站转载的所有的⽂章、图⽚、⾳频视频⽂件等资料的版权归版权所有⼈所有,本站采⽤的⾮本站原创⽂章及图⽚等内容⽆法⼀⼀联系确认版权者。如果本⽹所选内容的⽂章作者及编辑认为其作品不宜公开⾃由传播,或不应⽆偿使⽤,请及时通过电⼦邮件或电话通知我们,以迅速采取适当措施,避免给双⽅造成不必要的经济损失。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689327713a230446.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信