前言
笔者使用的硬件开发平台为stm32f407ZGT6,配合CubeMX生成基本代码,使用Keil5/VScode开发编译,库函数为LL/HAL库
一、选择MCU
启动CubeMX选择对应的MCU
使用SW口进行仿真debug,勾选Serial Wire
二、时钟配置
时钟系统是 CPU 的脉搏,有时候为了使单片机运行速度较快,我们可以配置时钟在一个较快的频率下工作,从而提高运行速度。
在 STM32F4 中,有 5 个最重要的时钟源,为 HSI、 HSE、 LSI、 LSE、 PLL。 其中 PLL 实
际是分为两个时钟源,分别为主 PLL 和专用 PLL。 从时钟频率来分可以分为高速时钟源和低速
时钟源,在这 5 个中 HSI, HSE 以及 PLL 是高速时钟, LSI 和 LSE 是低速时钟。从来源可分为
外部时钟源和内部时钟源,外部时钟源就是从外部通过接晶振的方式获取时钟源,其中 HSE 和
LSE 是外部时钟源,其他的是内部时钟源,为了保证时钟的稳定,我们一般选择外围高速时钟。
通过原理图可知外部时钟接的是8MHz的晶振
点击时钟配置,可以看到CubeMX的时钟配置界面为我们很清除地展现了stm32的时钟树,十分方便也利于理解
三、GPIO配置
从最基本的GPIO配置入手,具体电路原理不讲,自行翻阅手册。
查阅原理图可知PF9和PF10连接了板载LED,且输出电平为低时点亮
选择引脚PF9、PF10配置为输出
点击GPIO选项卡设置初始电平为高,其它默认即可
为了方便分辨GPIO,可以自定义标签名称(相当于#define)
四、工程项目配置
注意:命名和工程存放路径应为全英文,否则CubeMX无法生成启动文件(xxx.s)
最后点击右上角蓝色Generate Code生成工程
五、IDE配置及编写代码
观察生成的工程目录,确认各个目录功能
使用MDK打开工程,进行相关配置
接下来点个灯让LED0每隔500ms闪烁一次
在代码保护段写入
HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
HAL_Delay(500);
F7编译,连接好仿真器后F8烧录
0报错且烧录成功后打印结果
本人水平有限,如有错误,欢迎批评指正