藍橋杯嵌入式——蜂鳴器
作者:閆永成 QQ:793805481
藍橋杯嵌入式開發板的蜂鳴器接的引腳是PB4,這個引腳同時也是連接在JTAG接口的JNTRST引腳。
當我們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輸出高電平時,三極管截至,蜂鳴器不工作。
完!
歡迎大傢俬信提問!