1 原理圖
1、因爲使用的是PNP三極管所以在N_Buz
端口置零時蜂鳴器會發出響聲。
2、在觀察引腳時可以通過開發板實物直接觀察到N_Buz
和PB4
相連接,在比賽時這麼做應該可以節省時間:-)。
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;
}