提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
基于STM32F103C8T6在Keil下编程实现蜂鸣器的长鸣
STM32F103C8T6是ST在2007年发布的一款MCU,截止目前ST已经发布了速度高达400MHz的STM32H7。三点好处,一是封装比较大,方便初学者焊接,二是价格低廉,学习成本比较低,三是网上有大量的资料供初学者学习使用。
代码如下:
#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(对该引脚初始化) }代码如下:
#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代码如下:
//#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<n;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下编程实现蜂鸣器的长鸣的原理图和代码。