网站大量收购闲置独家精品文档,联系QQ:2885784924

STM32时钟配置方法.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32时钟配置方法详解 一、在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。 ①HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③LSI是低速内部时钟,RC振荡器,频率为40kHz。 ④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。 ⑤PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。 二、在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法:如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理: ①对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 ②对于少于100脚的产品,有2种接法:第1种:OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能;第2种:分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出0。此方法可以减小功耗并(相对上面)节省2个外部电阻。 三、用HSE时钟,程序设置时钟参数流程: 01、将RCC寄存器重新设置为默认值???RCC_DeInit; 02、打开外部高速时钟晶振HSE????RCC_HSEConfig(RCC_HSE_ON); 03、等待外部高速时钟晶振工作????HSEStartUpStatus?=?RCC_WaitForHSEStartUp(); 04、设置AHB时钟?????????RCC_HCLKConfig; 05、设置高速AHB时钟?????RCC_PCLK2Config; 06、设置低速速AHB时钟???RCC_PCLK1Config; 07、设置PLL??????????????RCC_PLLConfig; 08、打开PLL??????????????RCC_PLLCmd(ENABLE); 09、等待PLL工作???while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)?==?RESET) 10、设置系统时钟????????RCC_SYSCLKConfig; 11、判断是否PLL是系统时钟?????while(RCC_GetSYSCLKSource()?!=?0x08) 12、打开要使用的外设时钟????RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd() 四、下面是STM32软件固件库的程序中对RCC的配置函数(使用外部8MHz晶振) /******************************************************************************* *?Function?Name??:?RCC_Configuration? *?Description????:??RCC配置(使用外部8MHz晶振) *?Input????????????:?无 *?Output?????????:?无 *?Return?????????:?无 *******************************************************************************/ void?RCC_Configuration(void) { ??/*将外设RCC寄存器重设为缺省值*/ ??RCC_DeInit(); ? ??/*设置外部高速晶振(HSE)*/ ??RCC_HSEConfig(RCC_HSE_ON);???//RCC_HSE_ON——HSE晶振打开(ON) ? ??/*等待HSE起振*/ ??HSEStartUpStatus?=?RCC_WaitForHSEStartUp(); ? ??if(HSEStartUpStatus?==?SUCCESS)????????//SUCCESS:HSE晶振稳定且就绪 ??{ ????/*设置AHB时钟(HCLK)*/? ????RCC_HCLKConfig(RCC_SYSCLK_Div1);??//RCC_SYSCLK_Div1——AHB时钟=?系统时钟 ? ????/*?设置高速AHB时钟(PCLK2)*/? ????RCC_PCLK2Config(RCC_HCLK_Div1);???//RCC_HCLK_Div1——APB2时钟=?HCLK ? ????/*设置低速AHB时钟(PCLK1)*/???? RCC_PCLK1Config(RCC_HCLK_Div2);???//RCC_HCLK_Div2——APB1时钟=?HCLK?/?2 ? ????/*设置FLASH存

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档