做者:张阿永 QQ:793805481web
蓝桥杯嵌入式开发板的蜂鸣器接的引脚是PB4,这个引脚同时也是链接在JTAG接口的JNTRST引脚。
当咱们stm32复位后,PB4引脚默认是做为JTAG接口的JNTRST引脚,所以 咱们在使用蜂鸣器以前要先把PB4复用回咱们的普通IO口。svg
所以须要咱们添加这条语句:函数
GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE); //PB4 重映射
注意:不要忘记开启AFIO时钟spa
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
而后就能释放PB4了。 code
以后,蜂鸣器就能够像LED同样进行初始化步骤和操做,此处再也不赘述。
代码以下:xml
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); } }
补充: blog
1、将JTAG引脚重映射的普通IO功能, 可能使得下载功能失效 ,恢复的方法以下:
1.按住板子上的RESET按键
2.点击REALVIEW MDK软件上的DOWNLOAD按钮
3.直到此时,松开板子上的复位按键,自动完成程序下载
下载功能恢复后,之后再下载代码则不须要此过程。token
2、蜂鸣器工做原理:
因为蜂鸣器的驱动电流比较大,可是STM32串口的输出电流达不到,因此这里加了一个三极管用于电流放大。关于三极管的知识,此处也再也不赘述。因此,当PB4输出低电平时,三极管导通,蜂鸣器工做;当PB4输出高电平时,三极管截至,蜂鸣器不工做。接口
完!
欢迎你们私信提问!ip