stm32内部低速rtc_STM32第三章系统时钟配置

本文详细介绍了STM32微控制器的系统时钟配置,包括主晶振、低速晶振在RTC中的作用。通过STM32F429为例,阐述了系统时钟的来源、时钟树结构以及如何通过库函数SetSysClock()设置系统时钟。文章强调了时钟配置的重要性,解析了系统复位后的启动过程,以及SystemInit和SetSysClock函数的代码分析,帮助读者理解时钟配置的细节。
摘要由CSDN通过智能技术生成
点击上方“ 果果小师弟 ”,选择“ 置顶/星标公众号 ”干货福利,第一时间送达! 7553bf70fe59b368af2af7c84a080db7.gif

学习系统时钟之前先问大家一个问题?

5b241d5fc7875bb31af045e6e59a271c.png

这是一个跑马灯的程序,为什么我们没有在主函数中配置系统时钟,却可以正常的执行流水灯代码呢?

我想大多数人都会说,已经配置了系统时钟,不需要在主函数中调用了。如果你回答不上来或者不清楚系统时钟是怎样配置的就好好看下文了。至此引出系统时钟的概念

所有数字计算机系统都是由某种形式的震荡时钟电路驱动的。这种电路被称为系统的“脉搏”,是系统正确运行的关键。如果振荡器失灵,系统将完全无法运行,如果振荡器运行不规律,系统执行的所有时间有关的计算都会有误差。
所有微控制器的启动流程都不通用。由于硬件的复杂性,必须运行一段由厂家定义的短小的“复位程序”来使硬件处于一种正确的状态,然后再开始执行用户程序。运行这个复位程序需要时间并且要求微控制器的振荡器已经运行。

我这里以STM32F429为例,其他的芯片的原理都是一样的。STM32F429主板上有两个无源晶振第一个是主晶振,频率为8MHz,经过内部PLL倍频到168MHz,作为CPU内核的时钟使用。第二个晶振频率为32.768kHz,用于内部RTC电路。第二个晶振不是必须的,当需要使用STM32内部RTC时钟功能时才需要安装32.768k晶振

CPU的内核时钟可以高达180MHz,但并不是说我们就必须要设置为最高180MHZ。你可以设置为小于等于180MHZ都可以。但是CPU内部的外设,比如ADC,GPIO,部分TIM是达不到这么高的速度的。CPU的时钟管理电路有好几个分频器,不同速度的外设给定不同的时钟。

主时钟选择的是HSE高速外部时钟。
系统时钟 SYSCLK =PLLCLK= 168MHz
AHB总线时钟HCLK = SYSCLK=168MHz
APB1外设时钟PCLK1 = HCLK /4=42MHz
APB2外设时钟PCLK2 = HCLK /2=84MHz

时钟树单纯讲理论的话会比较枯燥,如果选取一条主线,并辅以代码,先主后次讲解的话会很容易,而且记忆还更深刻。我们这里选取库函数时钟系统时钟函数SetSysClock()这个函数在system_stm32f4xx.c中,以这个函数的编写流程来讲解时钟树,这个函数也是我们用库的时候默认

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值