配置时钟流程: 1.将RCC寄存器重新设置为默认值 RCC_DeInit 2.打开外部高速时钟晶振 HSE RCC_HSEConfig(RCC_HSE_ON); 3.等待外部高速时钟晶振工作 HSEStartUpStatus =RCC_WaitForHSEStartUp(); 4.设置AHB时钟 RCC_HCLKConfig; 5.设置高速APB2时钟 RCC_PCLK2Config; 6.设置低速速APB1时钟 RCC_PCLK1Config 7.设置PLL RCC_PLLConfig 8.打开PLL RCC_PLLCmd(ENABLE); 9等待PLL工作 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) 10.设置系统时钟 RCC_SYSCLKConfig 11.判断是否PLL是系统时钟 while(RCC_GetSYSCLKSource() != 0x08) 12.打开要使用的外设时钟 RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd() STM32F103RCT6是一款基于ARM Cortex-M3内核的微控制器,由意法半导体(STMicroelectronics)制造。在STM32系列中,时钟配置是至关重要的,因为它直接影响到微控制器的工作效率和能效。下面将详细解释STM32F103RCT6的时钟配置流程及其相关知识点。 1. **RCC寄存器重置**: 在进行任何时钟配置之前,通常会先调用`RCC_DeInit`函数来将RCC(Reset and Clock Control)寄存器复位到其默认状态。这确保了所有时钟源、分频器和使能都处于初始设定,避免了因前一次配置残留而导致的问题。 2. **开启外部高速时钟晶振(HSE)**: STM32F103RCT6通常使用外部高速石英晶体振荡器(HSE)作为主时钟源。通过调用`RCC_HSEConfig(RCC_HSE_ON)`,可以启动HSE。HSE提供高达8MHz至25MHz的输入频率,为系统提供精确的时钟。 3. **等待HSE稳定**: `RCC_WaitForHSEStartUp()`函数用于检查HSE是否已经稳定工作。该函数会循环检测HSE状态,直到HSE启动成功或超时。 4. **设置AHB总线时钟**: AHB(Advanced High-performance Bus)是STM32中的高性能总线,负责连接CPU和其他多个组件。`RCC_HCLKConfig`用于设置AHB时钟分频因子,影响到CPU、内存以及其他AHB接口的速度。 5. **设置高速APB2时钟**: APB2总线时钟主要服务于GPIO、SPI、USART等高速外设。`RCC_PCLK2Config`函数用于设置APB2的时钟频率,这会影响APB2上的外设工作速度。 6. **设置低速APB1时钟**: APB1总线时钟服务于I2C、ADC、Timers等低速外设。`RCC_PCLK1Config`函数用于配置APB1的时钟频率,确保这些外设正常工作。 7. **配置PLL(锁相环)**: PLL用于提高输入时钟频率,以提升系统运行速度。`RCC_PLLConfig`函数允许设置多倍频系数和分频系数,以生成期望的系统时钟频率。 8. **启用PLL**: 使用`RCC_PLLCmd(ENABLE)`命令开启PLL。PLL启动后需要一定时间才能稳定,所以接下来会进入等待状态。 9. **等待PLL稳定**: 使用`while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)`循环检查PLL准备就绪标志,直到PLL稳定并准备好供系统使用。 10. **设置系统时钟源**: `RCC_SYSCLKConfig`函数用于选择系统时钟源,可以是HSE、HSI(内部高速时钟)、HSE经过PLL放大或其他时钟源。通常会选择PLL作为系统时钟,以获得更高的性能。 11. **判断系统时钟是否已切换到PLL**: `RCC_GetSYSCLKSource()`返回当前的系统时钟源。在调用`RCC_SYSCLKConfig`后,会有一个短暂的切换过程,通过`while(RCC_GetSYSCLKSource() != 0x08)`循环判断系统时钟是否已切换到PLL。 12. **开启外设时钟**: `RCC_APB2PeriphClockCmd()`和`RCC_APB1PeriphClockCmd()`函数分别用于开启APB2和APB1上特定外设的时钟。这是在使用任何外设之前必须的步骤,否则外设将无法工作。 以上就是STM32F103RCT6的时钟配置过程,这些步骤确保了微控制器在启动后能够以正确的时钟频率运行,并为各个外设提供合适的时钟源,从而保证系统高效稳定地运行。理解并熟练掌握这个流程对于开发基于STM32的嵌入式应用至关重要。

















- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 奥创利综合布线系统解决方案.doc
- 2018年河北对口升学计算机专业理论试题(附的答案解析)(最新整理).pdf
- 2023年奥派电子商务实验报告.doc
- 必修2第6章从杂交育种到基因工程第2节基因工程及其应用教学课件.ppt
- IBM经验谈百年历程智慧转型.docx
- BP神经网络预测理论及程序-学习.docx
- PCF8563的C51程序设计.doc
- ERP系统集成会计业务处理研究.doc
- 2023年下半年系统集成项目管理工程师考试真题下午案例分析题北京众和信诚.doc
- 2023年网络竞赛答案.doc
- IPMP培训纲要(第四部分成功的项目计划与控制).ppt
- JSP二手交易系统论文.doc
- Lean-Logistic-CN-S.pptx
- 2022软件简历自我评价.docx
- 2023年微型计算机接口技术及应用第三版刘乐善重要知识点.doc
- 2023年会题库会计电算化会计实务操作软件例题.doc


