藍橋杯嵌入式——蜂鳴器

藍橋杯嵌入式——蜂鳴器

作者:閆永成              QQ:793805481

       藍橋杯嵌入式開發板的蜂鳴器接的引腳是PB4,這個引腳同時也是連接在JTAG接口的JNTRST引腳。
Pin definitions
       當我們stm32復位後,PB4引腳默認是作爲JTAG接口的JNTRST引腳,因此 我們在使用蜂鳴器之前要先把PB4複用回我們的普通IO口。

因此需要我們添加這條語句

GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE); //PB4 重映射

注意:不要忘記開啓AFIO時鐘

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

然後就能釋放PB4了。

之後,蜂鳴器就可以像LED一樣進行初始化步驟和操作,此處不再贅述。
代碼如下:

void BEEP_Init(void)//初始化
{
	GPIO_InitTypeDef GPIO_InitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);

	GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE); //PB4 重映射
	
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
}
void BEEP_Control(u8 state)//蜂鳴器控制函數 0→響  
{
   if(state==0)
   {
    GPIO_ResetBits(GPIOB,GPIO_Pin_4);
   }
   if(state==1)
   {
    GPIO_SetBits(GPIOB,GPIO_Pin_4);
   }
}

補充:

一、將JTAG引腳重映射的普通IO功能, 可能使得下載功能失效 恢復的方法如下:
        1.按住板子上的RESET按鍵
        2.點擊REALVIEW MDK軟件上的DOWNLOAD按鈕
        3.直到此時,鬆開板子上的復位按鍵,自動完成程序下載
        下載功能恢復後,以後再下載代碼則不需要此過程。

二、蜂鳴器工作原理:原理圖
      由於蜂鳴器的驅動電流比較大,但是STM32串口的輸出電流達不到,所以這裏加了一個三極管用於電流放大。關於三極管的知識,此處也不再贅述。所以,當PB4輸出低電平時,三極管導通,蜂鳴器工作;當PB4輸出高電平時,三極管截至,蜂鳴器不工作。

                                                                                                                                                                                                                                                                                                                                                                                                
完!
歡迎大傢俬信提問!

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