STM32CUBEMX配置教程(二)时钟等内部参数配置

STM32CUBEMX配置教程(二)时钟等内部参数配置

基于STM32H743VI
使用STM32CUBEMX两年了,始终觉得这个工具非常的方便,但因为不是经常使用,导致有些要点总是会有些遗忘,因此写下这一系列教程以供记忆,顺便让我这个大萌新给广大小萌新提供一些学习帮助。

本次配置的工程链接在最下方,有需要自取。
0基础可以从第一个教程开始阅读STM32CUBEMX配置教程(一)基础配置

1.STM32CUBEMX新建工程

按照上述第一个教程的步骤新建一个工程,工程名字为STM32H743_CLOCK_TEST,并生成代码。
STM32CUBEMX配置教程(二)时钟等内部参数配置_第1张图片

2.STM32CUBEMX使用内部晶振配置时钟

使用内部晶振较为方便,但是内部晶振的性能可能较差,无法满足严格的定时要求,如果是出于节约成本或画板子少画几个电容的原因,也可以使用内部晶振(大型项目推荐外部晶振)。
在此系列所有的配置教程钟均使用内部时钟。
点击clock configuration即可进入时钟树配置界面:

在这里插入图片描述
STM32CUBEMX配置教程(二)时钟等内部参数配置_第2张图片
此时你应该查阅手册,了解你使用的mcu支持多少的运行频率,以我使用的H743为例,最高频率可达480Mhz,因此我可以按照480M的极限频率来进行时钟树的配置。直接在最右边的CPU CLOCK里面输入480即可,系统会自动配置锁相环来进行自动倍频。
STM32CUBEMX配置教程(二)时钟等内部参数配置_第3张图片
对于一般的STM32单片机来说这样就可以了,但是对于H743来说不行。H743存在功率控制的一个参数。我们找到pinout&configuration的按钮,并打开System Core找到RCC配置界面,如下:
STM32CUBEMX配置教程(二)时钟等内部参数配置_第4张图片在这边存在一个Power Regular Voltage Scale的控制,默认是Scale 3,在这个模式下会限制MCU的最大频率(可能是处于低功耗的考虑),在此直接调整到Scale 0,也就是最后一个。
STM32CUBEMX配置教程(二)时钟等内部参数配置_第5张图片
调整完毕后在此回到时钟树的配置。直接在最右边的CPU CLOCK里面输入480即可,系统会提示没有解决方案,问你要不要使用其他方法,点击确定即可:
STM32CUBEMX配置教程(二)时钟等内部参数配置_第6张图片
点击后系统会自动进行解决方案的搜索,稍微等待一会:
STM32CUBEMX配置教程(二)时钟等内部参数配置_第7张图片等待了一会,系统配置成功,所有的时钟线几乎已经是最大频率,全速运行了:
STM32CUBEMX配置教程(二)时钟等内部参数配置_第8张图片

3.STM32CUBEMX使用外部晶振配置时钟

要想使用外部晶振必须要先打开晶振接口,STM32H7晶振口在下面这个地方打开;
STM32CUBEMX配置教程(二)时钟等内部参数配置_第9张图片
在这里插入图片描述
上述分别为高速时钟源和低速时钟源,高速时钟一般是12M、8M、25M等以兆为单位的晶振,低速时钟往往是32.768k的频率,将上述两个时钟打开,并设置为外部时钟晶体模式:
在这里插入图片描述
此时mcu边上也会出现相关提示,表示这几个口需要与晶振相连接STM32CUBEMX配置教程(二)时钟等内部参数配置_第10张图片
下面来到时钟树配置界面,发现使用外部时钟源时,时钟输入端的频率可以修改:
STM32CUBEMX配置教程(二)时钟等内部参数配置_第11张图片
这个数值需要与你实际使用的晶振频率对应,比如我现在板子上的晶振是25M的,那么我在这里也需要填写25M。与此同时,需要把这前面一个节点的配置选成HSE,即外部高速时钟,另一个选择PLLCLK,即锁相环倍频输出的时钟。除此之外,部分mcu可能具有CCS功能,即在外部时钟失常的时候自动切换到内部时钟工作,我在这里已经使能了这个CCS功能,因此在此显示CCS Enabled。
STM32CUBEMX配置教程(二)时钟等内部参数配置_第12张图片
调整完毕后在此回到时钟树的配置。直接在最右边的CPU CLOCK里面输入480即可,系统会提示没有解决方案,问你要不要使用其他方法,点击确定即可,等待一会,配置完成,系统已经全速运行。
STM32CUBEMX配置教程(二)时钟等内部参数配置_第13张图片

4.STM32CUBEMX配置MCU的某些内部功能

某些单片机具有特殊的一些功能,以STM32H743为例。STM32H7存在Cache和MPU,需要进行配置。
Cache又分数据缓存D-Cache和指令缓冲I-Cache,STM32H7的数据缓存和指令缓存大小都是16KB。STM32H7主频是400MHz,除了TCM和Cache以400MHz工作,其它AXI SRAM,SRAM1,SRAM2等都是以200MHz工作。数据缓存D-Cache就是解决CPU加速访问SRAM(参考qlexcel)。
这些特性可以在CUBEMX里面开启却和外设无关,开启步骤如下图:
STM32CUBEMX配置教程(二)时钟等内部参数配置_第14张图片
这边CORTEX-M7里面可以选择开始I CACHE和D CACHE和MPU等等参数,如果要用到CACHE传输需要进行相应配置。
工程链接:https://download.csdn.net/download/weixin_44584198/20394381

你可能感兴趣的:(STM32CUBEMX配置教程(二)时钟等内部参数配置)