蓝桥杯嵌入式蜂鸣器模块和下载程序失败解决方案

蓝桥杯嵌入式蜂鸣器模块和下载程序失败对应的解决方案

蜂鸣器的初始化问题

在提供的使用手册里我们可以看到PB4对应的是蜂鸣器,但是在STM32提供的资料STM32_CN.pdf中,我们可以看到PB4与SWJ的JNTRST存在复用,所以我们要吧JNRST关掉,才可以使用蜂鸣器模块。
在这里插入图片描述
buzz.c

#include "buzz.h"

void Buzz_init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);

	GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	//这个就是很重要的你可以理解为,不用JTRST
	//GPIO_PinRemapConfig这个函数在stm32f10x_gpio.h中
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST,ENABLE);
}

buzz.h

#ifndef __BUZZ_H
#define __BUZZ_H
#include "stm32f10x.h"

#define Beep_On()   GPIO_ResetBits(GPIOB,GPIO_Pin_4)
#define Beep_Off()  GPIO_SetBits(GPIOB,GPIO_Pin_4)

void Buzz_init(void);

#endif

后面在main函数中,直接调用Beep_On();函数就可以响了。

下载程序失败对应的解决方案

如果使用了蜂鸣器模块或者某些特殊情况下,可能会存在程序下载不进去板子的情况。这是因为你前面把SWJ的JTRST给关掉了,因此会导致下载不进去。因此你需要先按着板子的复位键(RESET),然后点下载,然后紧接着迅速松开复位键,然后就可以下载进去了!

发布了3 篇原创文章 · 获赞 4 · 访问量 1985

猜你喜欢

转载自blog.csdn.net/qq_43605009/article/details/104909790