爱吃草的小灰狼丿丶
2021-08-03 15:52
采纳率: 100%
浏览 97

在stm32f103zet6板子上写了一个跑马灯和蜂鸣器的程序,运行后发现跑马灯不跑,一个一直亮,另一个很微弱的闪,注释掉蜂鸣器部分的的函数后,跑马灯又能正常运行。

在stm32f103zet6板子上写了一个跑马灯和蜂鸣器的程序,运行后发现跑马灯不跑,一个一直亮,另一个很微弱的闪,注释掉蜂鸣器部分的的函数后,跑马灯又能正常运行,求帮助

主函数
#include "stm32f10x.h"
#include "delay.h"
#include "led.h"
#include "beep.h"
int main(void)
{
    
    delay_init();    
    LED_Init();//LED³õʼ»¯
    BEEP_Init();//·äÃùÆ÷³õʼ»¯

    
while(1)
{

    LED3=1;
  LED2=0;
    BEEP0=0;
    delay_ms(5000);

    LED3=0;
    LED2=1;
    BEEP0=1;
    delay_ms(5000);    

}
    
    
}
初始化LED函数
#include "stm32f10x.h"
#include "led.h"
void LED_Init()
{
    GPIO_InitTypeDef GPIO_InitStructure;//ÉùÃ÷Ò»¸öÃû×ÖΪGPIO_InitStructureµÄ½á¹¹Ì壬½á¹¹Ô­ÐÍGPIO_InitTypeDefÓÉÈ·¶¨¡£
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOE,ENABLE);//ʹÄÜIO¿ÚʱÖÓ
    
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
    GPIO_ResetBits(GPIOB,GPIO_Pin_5);   
    
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOE,&GPIO_InitStructure);
    GPIO_SetBits(GPIOE,GPIO_Pin_5);
}

初始化蜂鸣器函数
#include "stm32f10x.h"
#include "beep.h"

void BEEP_Init()
{
    GPIO_InitTypeDef GPIO_InitStructure;
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOB,&GPIO_InitStructure);
    GPIO_SetBits(GPIOB,GPIO_Pin_8);
}


  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • dceacho 2021-08-03 17:31
    最佳回答

    也有可能是你蜂鸣器耗电过大,导致供电不够
    你把蜂鸣器拆下来,程序保留再试试看

    评论
    解决 1 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题