持续关注阿杰在线更新保姆式笔记~~坚持日更

一、硬件连接

 BEEP = 0;--->不响                         BEEP = 1;--->响

二、库函数——步骤

  • 使能IO口时钟。调用函数RCC_APB2PeriphColckCmd();

     不同的IO组,调用的时钟使能函数不一样。

  • 初始化IO口模式。调用函数BEEP_Init();
  • 操作IO口,输出高低电平。

三、代码区

**main.c**
 
#include "led.h"
#include "delay.h"
#include "beep.h"
#include "sys.h"
 
 
int main(void)
{    
    Led_Init();//初始化与LED连接的硬件接口
    delay_init();//延时函数初始化      
    Beep_Init();//初始化蜂鸣器端口
    
    while(1)
    {
        PBout(5) = 0;//PB5亮(低电平)
        BEEP = 0;    //PB8不响(低电平)
        delay_ms(300);
 
        PBout(5) = 1;//PB5灭(高电平)
        BEEP = 1;//PB8响(高电平)
        delay_ms(300);
    }
}

**beep.c**
 
#include "beep.h"
#include "stm32f10x.h"
 
void Beep_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStru;
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能GPIOB端口时钟
    
    GPIO_InitStru.GPIO_Pin = GPIO_Pin_8; //BEEP-->PB.8 端口配置
    GPIO_InitStru.GPIO_Speed = GPIO_Speed_50MHz;//速度为50MHz
    GPIO_InitStru.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
    GPIO_Init(GPIOB,&GPIO_InitStru);//根据参数初始化GPIOB.8
    
    GPIO_ResetBits(GPIOB,GPIO_Pin_8);//输出0,关闭蜂鸣器输出
}