关于stm32f407时钟配置出问题了

自己写的时钟函数

int systime_int()
{
        int countnumber=40000;
       
        RCC->CR |=(uint32_t)(1<<16);
        do
        {
                countnumber--;
        }while((!(RCC->CR & (uint32_t)0x20000))|| countnumber );
        if(RCC->CR & (uint32_t)0x20000)       
        {
                //FLASH_SetLatency(FLASH_Latency_5);
                RCC->PLLCFGR |=(uint32_t)(1<<3);//pllm
                RCC->PLLCFGR |=(uint32_t)(0x150<<6);//plln
                RCC->PLLCFGR |=(uint32_t)(0x40<<16);//pllp
                RCC->PLLCFGR &=(uint32_t)(4<<24);//pllq
               
                RCC->CFGR |=(uint32_t)(0x0<<4);//ahb
                RCC->CFGR |=(uint32_t)(1<<15);//apb2
                RCC->CFGR |=(uint32_t)(1<<12);//apb1
                RCC->CFGR |=(uint32_t)(1<<10);//apb1
                RCC->CFGR |=(uint32_t)(1<<19);
                RCC->CFGR |=1<<1;
        }
        else
        {
                return 0x07;//外部震荡器使能失败;
        }
        RCC->CR|=(uint32_t)(1<<24);
        countnumber=40000;
        do
        {
                countnumber--;
               
        }while((!(RCC->CR & 0x2000000)) || countnumber );
        countnumber=40000;
        do
        {
                countnumber--;
        }while(!(RCC->CFGR &(uint32_t)0x08) || countnumber);
        if(RCC->CFGR &(uint32_t)0x08)       
        {
                FLASH_SetLatency(FLASH_Latency_5);
                return 0x01;//pll成功
        }
        else
        {
                return 0x02;//pll失败
        }

}

代码如上,用标准库写的,gpio驱动不起来
经过调试rcc->cr = 0x03038183
rcc->pllcfgr =0x04405408
rcc->cfgr= 0x0008940A
main.c如下

int main()
{
       
        GPIO_InitTypeDef *hgpiog;

        hgpiog->GPIO_Pin=GPIO_Pin_13;
        hgpiog->GPIO_Mode=GPIO_Mode_OUT;
        hgpiog->GPIO_OType=GPIO_OType_PP;
        hgpiog->GPIO_PuPd=GPIO_PuPd_UP;
        hgpiog->GPIO_Speed=GPIO_Speed_100MHz;
       
        systime_int();
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG,ENABLE);
        SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
       
        GPIO_DeInit(GPIOG);
        //RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
        GPIO_Init(GPIOG,hgpiog);
        //USART_Init(USART1,huart);
        while(1)
        {
                //GPIO_WriteBit(GPIOG,GPIO_Pin_13,Bit_SET);
                GPIO_WriteBit(GPIOG,GPIO_Pin_13,Bit_RESET);
        }
       
}

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。