esp32 rtc 时钟设置不对_时钟体系

本文介绍了STM32的时钟体系,包括HSI、HSE、LSI、LSE和PLL时钟源的选择与配置。针对ESP32 RTC时钟设置问题,强调了PLL倍频公式的重要性,并提供了SystemInit函数在系统初始化中的作用,特别是如何根据外部晶振频率调整PLL参数以达到168MHz系统时钟。同时,讨论了在不同应用场景中如何选择时钟源以平衡性能和功耗,如智能手表锁屏状态下的低功耗需求。最后,提到了CPU运行频率对系统性能和功耗的影响,并推荐了相关资源链接。
摘要由CSDN通过智能技术生成

一、时钟体系

给单片机提供一个时钟信号(一个非常稳定的频率信号),使单片机各内部组件同步工作,并且在和外部设备通信时是也能达到同步。

动态调整运行频率,就可以控制性能与功耗!

1、参考手册 STM32F4xx 中文参考手册.pdf 第 106 页

2、时钟源

a.可以使用三种不同的时钟源来驱动系统时钟 (SYSCLK),CPU 运行的频率为 168MHz:

● HSI 振荡器时钟,也就是高速内部时钟,一般来说很少用,因为精度没有外部高速时钟那么高。

● HSE 振荡器时钟,也就是高速外部时钟,GECM4 开发板 8MHz。

● 主 PLL (PLL) 时钟

b.器件具有以下两个次级时钟源:

● 32 kHz 低速内部 RC (LSI RC),该 RC 用于驱动独立看门狗,也可选择提供给 RTC 用于停机/待机模式下的自动唤醒。

● 32.768 kHz 低速外部晶振(LSE 晶振),用于驱动 RTC 时钟 (RTCCLK)对于每个时钟源来说,在未使用时都可单独打开或者关闭,以降低功耗。

3、时钟源

3634b9080c7101174f1569ea45520439.png

二、PLL倍频公式

cfad872280db519ff7f57c94f2ddbf72.png

不同的芯片,倍频(频率翻倍)公式是不一样的,需要查询芯片手册!

三、SystemInit系统初始化函数

1.其实第一个执行的文件是汇编文件

·栈的初始化,提供函数调用的时候进行现场保护和现场恢复

·堆的初始化,为申请内存提供空间,调用malloc

·执行Reset_Handler,意思说上电复位后执行的动作

·执行SystemInit函数

·跳转到main函数

2.初始化Flash接口,更新PLL系统频率

/**  * @brief  Setup the microcontroller system  *         Initialize the Embedded Flash Interface, the PLL and update the  *         SystemFrequency variable.  * @param  None  * @retval None  */void SystemInit(void){
      ................  /* Configure the System clock source, PLL Multiplier and Divider factors,     AHB/APBx prescalers and Flash settings ----------------------------------*/  SetSysClock();   ................ }

3.调用SetSysClock

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值