同一外设时钟使能可以重复吗?

2019-08-19 18:26发布

同一外设时钟使能可以重复吗?
main.c中代码:
#include "sys.h"
#include "led.h"
#include "beep.h"
#include "delay.h"
int main()
{
        delay_init();
        led_init();
        beep_init();
        while(1)
        {
                GPIO_SetBits(GPIOB, GPIO_Pin_8);
                GPIO_ResetBits(GPIOB, GPIO_Pin_5);
                delay_ms(500);
                GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                GPIO_SetBits(GPIOB, GPIO_Pin_5);
                delay_ms(500);
        }
}
led.c中代码:
//DS0 B5 DS1 E5 低电平灯亮
#include "led.h"

void led_init(void)
{
        GPIO_InitTypeDef GPIO_Init_Str;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);
        GPIO_Init_Str.GPIO_Pin = GPIO_Pin_5;
        GPIO_Init_Str.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init_Str.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOB,&GPIO_Init_Str);
        GPIO_Init_Str.GPIO_Pin = GPIO_Pin_5;
        GPIO_Init_Str.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init_Str.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOE,&GPIO_Init_Str);
        GPIO_SetBits(GPIOB, GPIO_Pin_5);
        GPIO_SetBits(GPIOE, GPIO_Pin_5);
}


beep.c中代码:
#include "beep.h"
void beep_init(void)
{
        GPIO_InitTypeDef GPIO_Init_Str;
        //RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, ENABLE); //发现将这句话屏蔽掉代码才能正常工作,时钟使能不能重复吗???
        GPIO_Init_Str.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init_Str.GPIO_Pin = GPIO_Pin_8;
        GPIO_Init_Str.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_Init_Str);
        GPIO_ResetBits(GPIOB, GPIO_Pin_8);
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。