文章目录
前言
在Help中的Manage Embedded Software Packet,完成STM32H7系列芯片软件包的安装。
一、工程的创建
File -> New Project -> STM32 Project
然后选择芯片以及封装,我选的是 STM32H743ⅡTx,封装为 LQFP176.
注意,保存工程文件:File -> Save 可以生成代码,保存工程文件。
二、RCC配置
选项 High Speed Clock( HSE)用来配置 HSE,第二个选项 Low Speed Clock( LSE)用来配置 LSE,选项 Master Clock Output 1 用来选择是否使能 MCO1 引脚时钟输出,选项 Master Clock Output 2 用来选择是否使能 MCO2 引脚时钟输出,最后一个选项 Audio Clock Input( I2S_CKIN)用来选择是否从 I2S_CKIN(PC9)输入 I2S 时钟。这里大家要注意,因为选项 Master Clock Output 2 和选项 Audio Clock Input( I2S_CKIN)都是使用的 PC9 引脚,所以如果我们使能了其中一个,那么另一个选项会自动显示为红色,也就是不允许配置,这就是 STM32CubeMX 的自动冲突检测功能。
Bypass Clock Source 的意思是旁路时钟源,也就是不使用使用晶振/陶瓷振荡器,直接通过外部提供一个可靠的 4-26MHz 时钟作为 HSE。
本次示例工程,我们仅配置 HSE 为 Crystal/Ceramic Resonator.
三、时钟树配置
1.目的
1)以 HSE 为时钟源,配置主 PLL 相关参数,然后系统时钟选择 PLL 为时钟源,最终配置系统时钟为 400MHz.
2)配置 AHB, APB1, APB2、APB3、 APB4 和 Systick 的相关分频系数
2.系统时钟配置
系统时钟配置见下图:
1)时钟源选择: HSE 还是 HSI。这里我们配置选择器选择 HSE 。
2)PLL 分频系数 M 配置。分频系数 M 我们设置为 5。
3)主 PLL 倍频系数 N 配置。倍频系数 N 我们设置为 160。
4)主 PLL 分频系数 P 配置。分频系数 P 我们配置为 2。
5)系统时钟时钟源选择: PLL,HSI 还是 HSE。我们选择 PLL,选择器选择 PLLCLK。
6)得到SYSCLK=400Mhz
2.配置 AHB,APB1、 APB2、 APB3、 APB4 和 Systick 的分频系数
其中 AHB 总线时钟 HCLK 是由 SYSCLK 经过 AHB 预分频器之后的来,如果我们要设置 HCLK 为 200MHz(最大也就 200Mhz),那么我们只需要配置图中标号 1的地方为 2 即可。
然后依次配置 APB3、 APB1、 APB2和 APB4 分频系数均为2 。
Systick 固定为 400MHz, 配置完成之后,HCLK=200MHZ,Systic=400MHz, PCLK1=100MHz, PCLK2=100MHz, PCLK3=100Mhz,PCLK4=100MHz。
四、GPIO配置
我用的正点原子STM32H7开发板的 PB0 和 PB1 引脚有连接两个 LED 灯。我将配置这两个接口。
回到Pinout,找到PB0和PB1,点击并选择 GPIO_Output,如上图所示;
如果我们要配置 IO 口为外部中断引脚或者其他复用功能,我们选择相应的选项即可。
完成后,我们将在Configuration中配置IO口的各种参数,目的同库函数中的接口初始化。如下图:
根据自己实际情况配置相应的参数,达到相关功能。我这里PB0,1设置的均是推挽输出,高速,上拉。注意:可以使用User Label,定义用户自己的变量名,方便理解阅读。
五、M7内核基本配置
Configuration->Cortex_M7 ARM 进入配置界面。
图中,
- CPU ICache:使能 I-Cache。 选择enabled.
- CPU DCache: 使能 D-Cache。选择enabled.
3)Cortex Memory Protection Unit,是用来配置内存保护单元 MPU。后续会说到,这里我们先不选择。
六、生成代码
点击:Project -> Generate Code
但在这之前,我们需要调整一些设定,以使我们的代码可编译运行。
首先,Project-> Properties
出现以下界面:
点击 C/C++ Build -> Setting
在 MCU Post build outputs 中,勾选上如上图所示内容。完成后,Apply然后关闭。
点击RUN,即可编译生成HEX文件。
总结
1)创建工程
2)配置RCC
3)配置时钟树
4)配置GPIO
5)M7内核基本设置
6)生成代码