1 工程初步建立
方法一:依次点击“File->New Project”即可建新工程。如果之前打开过的话,左侧最近打 开的过程一列会有打开的工程列表,直接点击这些工程也可以打开。
方法二:直接点击 ACCESS TO MCU SELECTOR。
之后选择具体的芯片型号,选择STM32F4ZGT6
鼠标双击选择的芯片型号后,弹出主设计界面。
2 HSE和LSE时钟源配置
进入工程主设计界面后,首先设置时钟源 HSE 和 LSE。
标号④和⑤,我们都选择了 Crystal/Ceramic Resonator,表示外部晶振作为 它们的时钟源。我们开发板的外部高速晶振和外部低速晶振分别是:8MHZ 和 32.768KHZ,所以 HSE 时钟频率就是 8MHZ,LSE 时钟频率就是 32.768KHZ。
选项 Master Clock Output 1 用来选择是否使能 MCO1 引脚时钟输出。
3 时钟树配置
进入 Clock Configuration 配置栏之后可以看到,界面展现一个完整的 STM32F4 时钟系统框图。从这个时钟树配置图可以看出,配置的主要是外部晶振大小,分频系数,倍频系数以及选择器。在我们配置的工程中,时钟值会动态更新,如果某个时钟值在配置过程中超过允许值, 那么相应的选项框会红色提示。
3.1 配置系统时钟
最终配置系统时钟为 72MHz
3.2 配置SYSTICK、AHB、APB1和APB2的分频系数
4 GPIO功能引脚配置
选择 两个IO 口的功能 为 GPIO_Output。
如果我们要配置 IO 口为外部中断引脚或 者其他复用功能,我们选择相应的选项即可。配置完 IO 口功能之后,还要配置 IO 口的速度, 上下拉等参数。这些参数我们通过 System Core 下的 GPIO 选项进行配置。
GPIO output level 是 IO 的初始值,由于 LED 一端接 VCC,另一端接 GPIO,故要点亮 LED 灯时,使 GPIO 输出低电平即可。为了一开始让 LED 灯熄灭,我们设置初始值输出高电平。
GPIO mode 我们已经在视图中配置为推挽输出了,这里不需要修改。
GPIO Pull-up/Pull-down 默认是无上下拉,我们这里用默认配置。
Maximum output speed 输出速度配置,默认是低速,我们设置为高速。
User Label 用户符号,我们可以给 PB5 起一个别的名字 LED0。
PF9、PF10 也是按照这样的方法配置即可。
5 配置Debug选项
由于 CubeMX 默认把 Debug 选项关闭了,这样会给我们带来麻烦:用 CubeMX 生成的工 程编译下载一次后,后续再次下载就会提示错误,因此我们要把 Debug 选项打开。
中断优先级设置为2
6 生成工程源码
7 用户程序
大家需要注意,STM32CubeMX 生成的 main.c 文件中,有很多地方有“/* USER CODE BEGIN X */”和“/* USER CODE END X */”格式的注释,我们在这些注释的 BEGIN 和 END 之间编写代码,那么重新生成工程之后,这些代码会保留而不会被覆盖。
注意
路径全部要是英文,不能有中文,否则头文件会加不进工程。