蓝桥杯嵌入式——蜂鸣器

蓝桥杯嵌入式——蜂鸣器

作者:张阿永              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输出高电平时,三极管截至,蜂鸣器不工作。

                                                                                                                                                                                                                                                                                                                                                                                                
完!
欢迎大家私信提问!

发布了1 篇原创文章 · 获赞 1 · 访问量 33

猜你喜欢

转载自blog.csdn.net/qq_44944624/article/details/104898087