找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 916|回复: 0
打印 上一主题 下一主题
收起左侧

Stm32时钟体系

[复制链接]
跳转到指定楼层
楼主
ID:861888 发表于 2020-12-19 08:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、时钟体系
(1)参考手册 STM32F4xx中文参考手册.pdf 第106页
(2)时钟源
可以使用三种不同的时钟源来驱动系统时钟 (SYSCLK):
● HSI 振荡器时钟,高速内部时钟
● HSE 振荡器时钟,高速外部时钟,外接晶振8MHz
● 主 PLL (PLL) 时钟,倍频后可达168MHz
器件具有以下两个次级时钟源:
●32 kHz 低速内部 RC (LSI RC),该 RC 用于驱动独立看门狗,也可选择提供给 RTC 用于停机/待机模式下的自动唤醒。
● 32.768 kHz 低速外部晶振(LSE 晶振),用于驱动 RTC 时钟 (RTCCLK)
对于每个时钟源来说,在未使用时都可单独打开或者关闭,以降低功耗。
file:///C:/Users/XIANGF~1/AppData/Local/Temp/ksohtml/wpsCE78.tmp.jpg
2、修改系统文件
(1)其实第一个执行的文件是汇编文件:startup_stm32f40_41xxx.s
        .栈的初始化,提供函数调用的时候进行现场保护和现场恢复
        .堆的初始化,为申请内存提供空间,调用malloc
        .执行Reset_Handler,意思说上电复位后执行的动作
                .执行SystemInit函数
                .跳转到main函数
(2)系统初始化函数SystemInit
void SystemInit(void)
{
......
  /* Configure the System clock source, PLL Multiplier and Divider factors,
     AHB/APBx prescalers and Flash settings ----------------------------------*/
  SetSysClock();                //设置系统时钟源
}
(3)系统时钟源设置函数SetSysClock
static void SetSysClock(void)
{
........................
    /* Configure the main PLL */
    RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |
                   (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);
}
PLL时钟源计算公式:
#define PLL_M      25
#define PLL_Q      7
#define PLL_N      336
#define PLL_P      2
f(PLL 常规时钟输出) = f(PLL 时钟输入) × (PLLN / PLLM) / PLLP
                             = 8M * (336 / 25) / 2
                           = 53.76
结果与中文参考手册中所说的168MHz不相吻合?
由于官方的代码是使用的外部晶振25MHz,但GEC-M4是使用的8M,所以要进行修改。
修改以下两个地方:
(1)system_stm32f4xx.c的254行
#define PLL_M      25
修改为:#define PLL_M      8
(2)stm32f4xx.h的127行
#define HSE_VALUE    ((uint32_t)25000000)
修改为: #define HSE_VALUE    ((uint32_t)8000000)
修改不了?
打开该文件所在文件件,将只读的√去掉,即可修改,改完之后,将权限重新设为只读。
试一试:
调节PLL_N的值为432的时候,那么CPU跑的频率能够高达216MHz,感受超频的快感!
        调节PLL_N的值为168的时候,那么CPU跑的频率能够高达84 MHz,感受蜗牛的速度!
项目经验:
        调节CPU的运行频率,来控制系统的性能与功耗。比较典型的例子就是说手机/笔记本电脑都有高性能模式、平衡模式、低功耗模式。
M4开发板
        高性能                216MHz,最高能够?MHz
        平衡模式        168MHz
        低功耗                84MHz,最低能够低到8MHz
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表