——时钟控制(RCC) 三种不同的时钟源可用作系统时钟(SYSCLOCK): HIS振荡器时钟(由芯片内部RC振荡器提供) HSE振荡器时钟(由芯片外部晶体振荡器提供) PLL时钟(通过倍频HIS或HSE振荡器倍频得到) 另外还有两个时钟源: LSI内部40kHz低速RC振荡器时钟,用于驱动独立看门狗或选择驱动RTC LSE外部32.768kHz低速外部输入时钟,用于驱动RTC STM32F103单片机的系统时钟部分主要涉及到时钟源的选择和配置,这些时钟源对单片机的性能和功耗管理至关重要。STM32F103采用的是ARM Cortex-M3架构,其时钟控制系统称为RCC(Reset and Clock Control),它管理着整个系统的时钟分配。 一、时钟源 1. HIS(High-Speed Internal)振荡器:这是由芯片内部的RC振荡器提供的时钟,一般在4-16MHz范围内,可作为备用或初始化时钟源。 2. HSE(High-Speed External)振荡器:由外部晶体振荡器提供,通常用于提供精确的时钟,频率范围通常在8-25MHz之间。 3. PLL(Phase Locked Loop)时钟:通过倍频HIS或HSE振荡器得到,可以进一步提升系统时钟频率,例如9倍频可将72MHz的输入时钟提升到648MHz。 二、其他时钟源 1. LSI(Low-Speed Internal)振荡器:这是一个内部40kHz的低速RC振荡器,主要用于驱动独立看门狗或者选择驱动RTC(实时时钟)。 2. LSE(Low-Speed External)振荡器:这是一个外部32.768kHz的低速时钟,通常用于RTC以实现精确的时间测量。 三、时钟分配与频率 1. AHB(Advanced High-performance Bus)总线时钟(HCLK):最大频率为72MHz,可以通过预分频器配置。 2. 高速APB(APB2)总线时钟:最大频率同为72MHz。 3. 低速APB(APB1)总线时钟:最大允许频率为36MHz,如SDIO接口的时钟频率固定为HCLK的一半。 4. Cortex-M3的系统定时器(SysTick)时钟:由AHB时钟8分频后提供,也可以选择Cortex时钟。 5. ADC(Analog-to-Digital Converter)时钟:由高速APB2时钟经2、4、6或8分频后获得。 四、系统时钟配置流程 1. 启动HIS时钟。 2. 清除或配置相关寄存器(RCC_CR、RCC_CFGR、RCC_CIR)以选择默认时钟源并设置预分频器。 3. 关闭不需要的时钟源,如PLL和HSE,并关闭时钟检测。 4. 设置HSE为外部晶体振荡器,并非旁路模式。 5. 配置PLL为HSE输入,选择适当的倍频因子。 6. 清除所有时钟中断。 7. 开启HSE振荡器并等待其稳定。 8. 配置预分频器以设定AHB、APB1和APB2的时钟频率。 9. 启用PLL并等待其锁定。 10. 选择PLL作为系统时钟,并等待系统时钟切换完成。 总结来说,STM32F103的时钟配置是一个复杂的过程,需要根据应用需求和外部条件来选择合适的时钟源,调整预分频器,以达到最优的系统性能和电源效率。这个过程涉及对RCC寄存器的细致操作,确保每个步骤都正确无误,以保证单片机正常工作。
- 粉丝: 3
- 资源: 951
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助