蜂鸣器硬件电路连接
蜂鸣器软件设计-库函数
使能输入输出口时钟。调用函数RCC_AHB1PeriphClockCmd();
初始化输入输出口模式。调用函数GPIO_Init();
操作输入输出口,输出高低电平。
beep.h
#ifdef __BEEP_H
#define __BEEP_H
#include "sys.h"
#define BEEP PFout(8) //蜂鸣器控制IO
void BEEP_Init(void); //初始化
#endif
beep.c
#include "beep.h"
void BEEP_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE); //使能GPIOF时钟
//初始化蜂鸣器对应引脚GPIOF8
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT; //普通输出模式
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz; //100MHz
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_DOWN; //下拉
GPIO_Init(GPIOF,&GPIO_InitStructure); //初始化GPIO
GPIO_ResetBits(GPIOF,GPIO_Pin_8); //蜂鸣器对应引脚GPIOF8拉低
}
main.c
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "beep.h"
int main(void)
{
dealy_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); //延时300ms;
GPIO_SetBits(GPIOF,GPIO_Pin_9); //DS0拉高,灭 等同LED0=1;
GPIO_SetBits(GPIOF,GPIO_Pin_8); //BEEP引脚拉高,等同BEEP=1;
delay_ms(300); //延时300ms;
}
}
蜂鸣器实验-寄存器
beep.h
#ifndef __BEEP_H
#define __BEEP_H
#incldue "sys.h"
#define BEEP PFout(8) //蜂鸣器控制IO
void BEEP——Init(void); //初始化
#endif
beep.c
#include "beep.h"
//初始化PF8为输出口
//BEEP IO初始化
void BEEP_Init(void)
{
RCC->AHB1ENR|=1<<5; //使能PORTF时钟
GPIO_Set(GPIOF,PIN8,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PD); //PF8设置,下拉
BEEP=0; //关闭蜂鸣器
}
main.c
#include "sys.h"
#include "delay.h"
#include "led.h"
#include "beep.h"
int main(void)
{
Stm32_Clock_Init(336,8,2,7); //设置时钟,168MHz
delay_init(168); //初始化延时函数
LED_Init(); //初始化LED时钟
BEEP_Init(); //初始化蜂鸣器端口
while(1)
{
LED0=0;
BEEP=0;
delay_ms(300);
LED0=1;
BEEP=1;
delay_ms(300);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)