• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32如何使用内部时钟源当系统时钟

未知_玄 2018-09-13 浏览量:3629
stm32如何使用内部时钟源当系统时钟
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • void RCC_Configuration(void)
    {
      RCC_DeInit();//将外设 RCC寄存器重设为缺省值

      RCC_HSICmd(ENABLE);//使能HSI  
      while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET)//等待HSI使能成功
      {
      }

      if(1)
      {
        RCC_HCLKConfig(RCC_SYSCLK_Div1);    //配置AHB总线时钟
        RCC_PCLK1Config(RCC_HCLK_Div2); //配置APB1外设时钟
        RCC_PCLK2Config(RCC_HCLK_Div1); //配置APB2外设时钟

        //设置 PLL 时钟源及倍频系数
        RCC_PLLConfig(RCC_PLLSource_HSI_Div2 RCC_PLLMul_2);                
        //使能或者失能 PLL这个参数可以取:ENABLE或者DISABLE
        RCC_PLLCmd(ENABLE);//如果PLL被用于系统时钟那么它不能被失能
        //等待指定的 RCC 标志位设置成功 等待PLL初始化成功
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
        {
        }

        //设置系统时钟(SYSCLK) 设置PLL为系统时钟源
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  
        //等待PLL成功用作于系统时钟的时钟源
        //  0x00:HSI 作为系统时钟 
        //  0x04:HSE作为系统时钟 
        //  0x08:PLL作为系统时钟  
        while(RCC_GetSYSCLKSource() != 0x08)
        {
        }
      }
    }
    • 发布于 2018-09-13
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:21
  • 直接在CubeMX配置就好

    QQ截图20180913095041.jpg

    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 1
    • 0

  • 在宏定义里把外部晶振屏蔽了,开启hsi就可以了
    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 在时钟树中打开内部RC振荡器,关闭外部时钟估计主频可以达到48M把
    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 用CUBE软件直接配置就好了,默认好像就是没有使用外部时钟的
    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 配置RCC的时候,将时钟选择为HSI


    首先在主程序中注释掉SystemInit();

    然后使用下面的函数做为系统时钟的初始化函数


    void RCC_Configuration(void)  

    {  

        RCC_DeInit();//将外设 RCC寄存器重设为缺省值  

      

        RCC_HSICmd(ENABLE);//使能HSI    

        while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);//等待HSI使能成功  

      

        //FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);  

        //FLASH_SetLatency(FLASH_Latency_2);  

         

        RCC_HCLKConfig(RCC_SYSCLK_Div1);     

        RCC_PCLK1Config(RCC_HCLK_Div2);  

        RCC_PCLK2Config(RCC_HCLK_Div1);  

          

        //设置 PLL 时钟源及倍频系数  

        RCC_PLLConfig(RCC_PLLSource_HSI_Div2 RCC_PLLMul_2);//使能或者失能 PLL这个参数可以取:ENABLE或者DISABLE   

        RCC_PLLCmd(ENABLE);//如果PLL被用于系统时钟那么它不能被失能  

        //等待指定的 RCC 标志位设置成功 等待PLL初始化成功  

        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);  

      

        //设置系统时钟(SYSCLK) 设置PLL为系统时钟源  

        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//选择想要的系统时钟   

        //等待PLL成功用作于系统时钟的时钟源  

        //  0x00:HSI 作为系统时钟   

        //  0x04:HSE作为系统时钟   

        //  0x08:PLL作为系统时钟    

        while(RCC_GetSYSCLKSource() != 0x08);//需与被选择的系统时钟对应起来,RCC_SYSCLKSource_PLL  

      

      

    }

    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接在STM32CubeMX里配置就好了,非常直观,看手册或者程序看的都头大,在这个软件里输入你的单片机型号后点击配置时钟即可,内部的外部的,高速的低速的,都可以很直观的看到倍频分频后分别流向哪里,直观又方便,一键生成程序
    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 其实一般还是使用的PLL作为系统时钟,不过PLL的时基是用HSI。
    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • CubeMX直接配置或者在配置RCC的时候,将时钟选择为HSI
    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 在配置RCC的时候,不用外部晶振,使能HSI
    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 在选择STM32的时钟源的时候选择使用HSI即可,HSE是外部的,不要选
    • 发布于2018-09-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先在主程序中注释掉SystemInit();
    然后使用上面人家的函数做为系统时钟的初始化函数
    • 发布于2018-09-14
    • 举报
    • 评论 0
    • 0
    • 0

  • cubemx默认配置就是使用内部时钟源。
    • 发布于2018-09-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 单片机一开始默认都是用内部时钟作系统时钟的.
    • 发布于2018-09-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 有一个专用的cube软件就可以直接设置你的初始化时钟
    • 发布于2018-09-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 配置rcc寄存器的时钟源为hsi即内部高频时钟即可。
    • 发布于2018-09-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 用cubeMX配置对应的时钟比较方便,不需要软件的代码去初始化
    • 发布于2018-10-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32如何使用内部时钟源当系统时钟