蓝桥杯嵌入式——蜂鸣器

Netany ·
更新时间:2024-11-13
· 950 次阅读

蓝桥杯嵌入式——蜂鸣器

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

                                                                                                                                                                                                                                                                                                                                                                                                
完!
欢迎大家私信提问!


作者:Y sir



蜂鸣器 蓝桥杯 嵌入 嵌入式

需要 登录 后方可回复, 如果你还没有账号请 注册新账号