STM32
直播中

黄色的小金橘

12年用户 602经验值
私信 关注
[问答]

STM32F103C8T6 Keil下编程实现蜂鸣器长鸣的原理是什么

STM32F103C8T6 Keil下编程实现蜂鸣器长鸣的原理是什么?
STM32F103C8T6 Keil下编程实现蜂鸣器长鸣的代码该怎样去编写?

回帖(1)

丁浩

2021-11-25 09:31:00
一、原理图

  1.STM32F103C8T6

  
  

  

STM32F103C8T6是ST在2007年发布的一款MCU,截止目前ST已经发布了速度高达400MHz的STM32H7。三点好处,一是封装比较大,方便初学者焊接,二是价格低廉,学习成本比较低,三是网上有大量的资料供初学者学习使用。
  2.BELL蜂鸣器

  
  

  

  二、Keil代码

  1.Beep.c

  代码如下:

#include"stm32f10x.h"
#include"Beep.h"


void BEEP_Init(void)
        {
    GPIO_InitTypeDef GPIO_Structure;//调用GPIO_Structure结构体


                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//引脚GPIOB挂载在APB2上的外设作为输入参数
       




                GPIO_Structure.GPIO_Mode=GPIO_Mode_Out_PP;//指定工作方式OUT推挽输出
                GPIO_Structure.GPIO_Pin=BEEP_Pin;//Beep指定引脚
                GPIO_Structure.GPIO_Speed=GPIO_Speed_10MHz;//指定速度为10MHz
               
       
       
               
                GPIO_Init(BEEP_GPIO,&GPIO_Structure);//调用GPIO_Init 传入&GPIO_Structure(对该引脚初始化)
               




}

2.Beep.h
代码如下:


#ifndef _BEEP_H_
#define _BEEP_H_
#include "stm32f10x.h"


//宏定义
#define BEEP_GPIO GPIOB //指定BEEP端口为GPIOB
#define BEEP_Pin GPIO_Pin_10  //指定GPIO_Pin_10引脚为BEEP_Pin




#define BEEP_OFF BEEP_GPIO->BRR = BEEP_Pin //BEEP响  SRR下拉
#define BEEP_ON BEEP_GPIO->BSRR = BEEP_Pin //BEEP停  BSRR上拉






//全局函数声明
void BEEP_Init(void);  //初始化






#endif


3.main.c
代码如下:


//#include"Led.h"
#include"stm32f10x.h"
#include"Beep.h"


//typedef unsigned         char uint8_t;
//typedef unsigned short   int uint16_t;
//typedef unsigned         int  uint32_t;
//typedef unsigned      _INT64_uint64_t;


static void delay(uint16_t n )//延时程序
{
        uint16_t i,j;
        for(i=0;i                 for(j=0;j<8500;j++);
}


int main(void)
{
        //LED_Init();
        BEEP_Init();//beep初始化
        while(1)
        {
        //        LED2_ON;
                //LED3_ON;
        //        GPIO_ResetBits(GPIOB,GPIO_Pin_10);//GPIO位输出为0
                BEEP_ON;
                delay(200);
                BEEP_OFF;
                //GPIO_SetBits(GPIOB,GPIO_Pin_10);//GPIO位输出1
                delay(180);
                BEEP_ON;
                delay(40);
                BEEP_OFF;
                delay(100);
                BEEP_ON;
                delay(90);
                BEEP_OFF;
                delay(150);
                //LED2_OFF;
                //LED3_OFF;
                //delay(200);
        }
}
总结

以上就是今天要讲的内容,本文仅仅简单介绍了基于STM32F103C8T6在Keil下编程实现基于STM32F103C8T6在Keil下编程实现蜂鸣器的长鸣的原理图和代码。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分