【藍橋杯嵌入式】3_Buzzer

1 原理圖

在這裏插入圖片描述
1、因爲使用的是PNP三極管所以在N_Buz端口置零時蜂鳴器會發出響聲。
2、在觀察引腳時可以通過開發板實物直接觀察到N_BuzPB4相連接,在比賽時這麼做應該可以節省時間:-)。

2、 部分源碼

main.c

#include "HeadFile.h"

int main(void)
{
	SysTick_Config(SystemCoreClock/1000);

	Delay_Ms(200);
	
	STM3210B_LCD_Init();
	LCD_Clear(Blue);
	LCD_SetBackColor(Blue);
	LCD_SetTextColor(White);

	LCD_DisplayStringLine(Line4 ,(unsigned char *)"    Buzzer Test.   ");
	Delay_Ms(1000);
	BuzzerInit();
	
	while(1){
		BuzzerSet;
		Delay_Ms(1000);
		BuzzerReset;
		Delay_Ms(1000);
		
	}
}

Buzzer.c
因爲PB4是具有複用功能的引腳所以需要先打開AFIO(Alternate Function IO)時鐘,然後使用GPIO_PinRemapConfig函數將JTAG功能相關引腳映射爲普通IO。

#include "HeadFile.h"

void BuzzerInit(){
	
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);//開啓AFIO時鐘
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE);//將PB4映射爲普通IO
	
	
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	
	BuzzerReset;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章