问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

stm32的内部时钟在哪儿配置

发布网友 发布时间:2022-04-29 17:43

我来回答

1个回答

热心网友 时间:2023-10-25 08:15

首先在主程序中注释掉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  

  

  

}  

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


}


补充一点:

由图可以看出系统时钟的供给可以有3种方式,HSI,HSE,PLL。如果选用内部时钟作为系统时钟,其倍频达不到72Mhz,最多也就8Mhz/2*16 = 64Mhz。

热心网友 时间:2023-10-25 08:15

首先在主程序中注释掉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  

  

  

}  

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


}


补充一点:

由图可以看出系统时钟的供给可以有3种方式,HSI,HSE,PLL。如果选用内部时钟作为系统时钟,其倍频达不到72Mhz,最多也就8Mhz/2*16 = 64Mhz。

热心网友 时间:2023-10-25 08:15

首先在主程序中注释掉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  

  

  

}  

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


}


补充一点:

由图可以看出系统时钟的供给可以有3种方式,HSI,HSE,PLL。如果选用内部时钟作为系统时钟,其倍频达不到72Mhz,最多也就8Mhz/2*16 = 64Mhz。

热心网友 时间:2023-10-25 08:15

首先在主程序中注释掉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  

  

  

}  

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


}


补充一点:

由图可以看出系统时钟的供给可以有3种方式,HSI,HSE,PLL。如果选用内部时钟作为系统时钟,其倍频达不到72Mhz,最多也就8Mhz/2*16 = 64Mhz。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
和面的和是什么读音? win10 应用打不开。全都打不开。 进入win10打不开软件 win10电脑软件都打不开是什么原因win10突然软件都打不开软件是怎么回事... 软件打不开怎么办win10电脑点不开软件最简单办法 请问下,离厦门市岛内的台湾路的国联大厦最近的建设银行和农业银行... 从巴黎都市到建设银行怎么坐公交车,最快需要多久 东莞万江官桥窖离建设银行哪路车最近? 建行七支分行有那些公交车经过 佛山哪里有飞越丛林拓展 STM32单片机时钟修改 住院患者以什么形式告知戒烟主管护师 STM32里的外设时钟是干什么? 主任舞台技师,主任技师算高工吗? 为什么stm32要设置各种时钟 护理学b100501什么意思 单片机实现时钟(有闹钟功能)的C语言程序 stm32系统时钟 我已是主管护师,可以考神经电生理(脑电图)技术主管技师吗 怎么用stm32做一个闹钟,需要什么知识 职称可以报考心电图的副高职称吗 STM32时钟问题 最近朋友圈很火的点赞壁纸,是怎么弄的? 怎样用stm32设计一个数码管显示的时钟 且可以用蜂鸣器定时? 护士如何转成心电图技师?怎样申请?怎样考试?每年考试时间? 赣州白蚁防治哪家公司最好,要价钱公道的 stm32带有时钟功能吗 护士怎么考试到操作心电图的操作证书 STM32 RTC闹钟设置死循环问题 学了51单片机2个月了,自己独立做了个电子闹钟.不过觉得不是很自信,觉得没有掌握透51.我是不是该 珠海市强制隔离戒毒所的具体地址 白蚁和“四害”防治是不是属于林业有害生物防治 stm32的rcc时钟是做什么用的? STM32辅助时钟 购买的一楼商品住宅房,入住第二年既发现白蚁(地基里的),4年来向物业及白蚁防治站反应无果。 stm32为什么要配置系统时钟 飞蚂蚁怎么灭 看一个人的聊天记录,就能知道他是否在乎我吗? 你有没有试着回看过和某人的聊天记录?是什么感受? 看聊天记录的感觉是? 手机总是虚电 怎么办啊 红心528冷风扇怎样工作 冰冷扇/空调扇好用不 请问计算机零基础考研怎么复习数据结构? 零基础学数据结构的内容简介 零基础学数据结构的特点 格力空调变频与不变频有什么区别? 学习数据结构需要先学习什么科目?求指导 考研跨考计算机 数据结构零基础 半年时间怎么学 如何学习数据结构