每次都死在同一个地方,代码如下,不倍频没有错误,一倍频就出现错误,麻烦大家帮忙看看啊
void Clock_Init(void)
{
u8 i;
RCC_DeInit ( );
RCC_HSEConfig(RCC_HSE_OFF);
RCC_HSICmd(ENABLE);
while(RCC_GetFlagStatus ( RCC_FLAG_HSIRDY) == RESET )
{
}
FLASH_PrefetchBufferCmd(ENABLE);
FLASH_SetLatency(FLASH_Latency_1);
RCC_PLLConfig (RCC_PLLSource_HSI,RCC_PLLMul_4,RCC_PLLDiv_2);
RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB = SYSCLK 32M
RCC_PCLK2Config(RCC_HCLK_Div1) ;
RCC_PCLK1Config(RCC_HCLK_Div1);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //PLL
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK) ;
while(RCC_GetSYSCLKSource()!= 0x0C) //每次都死在这里
{
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
0x00: MSI used as system clock
* - 0x04: HSI used as system clock
* - 0x08: HSE used as system clock
* - 0x0C: LL used as system clock
i=RCC_GetSYSCLKSource(); i通过观察i=0x00,但是0x00 是MSI时钟作为系统时钟啊,我要的是32M的PLL时钟
* @brief Returns the clock source used as system clock.
* @param None
* @retval The clock source used as system clock. The returned value can
* be one of the following:
* - 0x00: HSI used as system clock
* - 0x04: HSE used as system clock
* - 0x08: LL used as system clock
*/
我的库是这样的
---------------------------------
你的那个是stm32f系列的 我的这个是stm32L152RB系列的,咱俩的不一样,我是从f103转到L152的,时钟这就是不能倍频到32M,使用内部的16M完全没有问题,研究了好久,都不知道什么原因,应该是这个时钟MSI的问题,不知道应该怎么设置
一周热门 更多>