打印

关于HSI时钟

[复制链接]
1274|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
啊啊顺顺|  楼主 | 2014-12-9 17:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了个HSI时钟配置函数,但问题来了,STM32L的系统时钟最高为72MHz,HSI为16MHz,系统时钟最高为32MHz,但我通过PLL把HSI提高96MHz,再分频为32MHz时,系统就运行不了,就会卡死在时钟函数的下一个函数上。
请问是什么原因?我把系统时钟降低,比32MHz低时,系统可以运行,说明程序没问题。
请大神解答
void Driver_TIME_Init()
{
        ErrorStatus HSEStartUpStatus;
        //RCC reset
        RCC_DeInit();
        //Enable HSI
        RCC_HSICmd(ENABLE);
        //wait HSI
        while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);
        FLASH_PrefetchBufferCmd(ENABLE);
        FLASH_SetLatency(FLASH_Latency_1);
        //Set bus clock
  RCC_HCLKConfig(RCC_SYSCLK_Div1);
        RCC_PCLK1Config(RCC_HCLK_Div1);
        RCC_PCLK2Config(RCC_HCLK_Div1);
        //HSI16M PLL-> 64M
        RCC_PLLConfig(RCC_PLLSource_HSI,RCC_PLLMul_4, RCC_PLLDiv_3);
        RCC_PLLCmd(ENABLE);
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
        //Select PLL as system clock source
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
        while(RCC_GetSYSCLKSource() != 0x0C);
}

沙发
mmuuss586| | 2014-12-9 23:03 | 只看该作者

PLL系数也有取值范围的;
楼主看下资料是否超出;

使用特权

评论回复
板凳
啊啊顺顺|  楼主 | 2014-12-9 23:53 | 只看该作者
是没超出了,查过资料了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

15

帖子

0

粉丝