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

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

蜂鸣器的初始化问题

在提供的使用手册里我们可以看到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),然后点下载,然后紧接着迅速松开复位键,然后就可以下载进去了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值