STM32蜂鸣器-库函数

2023-11-01 62浏览
百检网是一家专业的第三方检测平台,汇聚众多拥有权威资质的第三方检测机构为你提供一站式的检测服务,做检测就上百检网。百检网让检测从此检测,一份报告全国通用,专业值得信赖。

需要注意的是,使用了库函数的模板就不能胡乱套用寄存器的操作,之前还想放个大招结果出丑了,这里的实验要求是绿灯亮,蜂鸣器响,红灯亮,蜂鸣器停止,蜂鸣器响起间隔半秒,led的文件我这里就不给出了,主要放出beep的文件吧,这里操作的是PF8口。

1.beep.h

#ifndef __BEEP_H

#define __BEEP_H

#include "sys.h"

#define BEEP PFout(8)

void beep_init(void);

#endif

2.beep.c

#include "beep.h"

void beep_init()

{

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);

GPIO_Init(GPIOF, &GPIO_InitStructure);

GPIO_SetBits(GPIOF, GPIO_Pin_8);

}

3.main.c

#include "stm32f4xx.h"

#include "usart.h"

#include "delay.h"

#include "led.h"

#include "beep.h"

int main(void)

{

uart_init(115200);

delay_init(84);

led_init();

beep_init();

while(1){

GPIO_ResetBits(GPIOF, GPIO_Pin_9);

GPIO_SetBits(GPIOF, GPIO_Pin_10);

GPIO_ResetBits(GPIOF, GPIO_Pin_8);

delay_ms(500);

GPIO_SetBits(GPIOF, GPIO_Pin_9);

GPIO_ResetBits(GPIOF, GPIO_Pin_10);

GPIO_SetBits(GPIOF, GPIO_Pin_8);

delay_ms(500);

}

}


百检网秉承“客户至上,服务为先,精诚合作,以人为本”的经营理念,始终站在用户的角度解决问题,为客户提供“一站购物式”的新奇检测体验,打开网站,像挑选商品一样简单,方便。打破行业信息壁垒,建构消费和检测机构之间高效的沟通平台