目录
复习自用,如有错误不吝赐教
一.软件简介
- STM32CubeMX可以形象理解为一个用来自动新建STM32工程的软件
- 主页面如下:
- 软件可以在ST官网免费下载(www.st.com)
二.软件基本操作
2.1添加MCU软件包
- 如果是自己手动新建工程,需要手动添加所需的STM32固件库,core3内核c文件,startup启动汇编文件等等
- 通过Cube新建工程可惜省去上述操作,因此,需要我们提前下载有关的MCU的一些文件
- 如,我们比赛所用的开发板芯片是STM32G431RBT6
- 在Cube主页面的右边:
-
- 下载或移除嵌入式软件包
- 在这里下载G431的软件包
-
- 我这里是已经下载完的状态
2.2新建一个基本工程的流程
①通过MCU选项新建工程
-
- 我们需要选择-Start My projec from MCU-ACCESS TO MCU SELECTOR
- 即-从MCU开始我的工程-通过MCU选项的方式
②选择G431
- 在出现的界面,如下:
- 可在左上角的-Part Number-直接搜索STM32G431RBT6
- 之后选择出现选项中正确封装LQFP64
- 右上角点击-Start Project
③4个选项卡进行配置
- 新出现的页面:
- 共4个选项卡,分别是引脚,时钟,工程设置,工具
- 在此做一些简单的介绍,具体应用需要日后深入使用时发掘
-
- Pinout & Configuration-即IO口输入或输出以及IO口设置
-
-
- 我们在此可以对除了固定引脚(vss,vdd等)外的其他引脚的输出输出模式或者端口复用或者重映射功能进行手动设置
- 也就是在这里可以设置如引脚PC11为推挽输出或复用为某个模块的端口,这些设置本来应该由我们在工程新建一个引脚初始化的函数进行设置,这里可以提前设置省去我们的时间。
-
-
-
- 其实就是由Cube新建了GPIO有关的.C.H文件,写了有关GPIO的函数,我们可以直接使用
-
-
- Clock Configuration-即时钟设置
-
-
- 、
- 上图即数据手册里有关时钟的那一页,我们可以在此修改一些预分配系数等(感觉用默认的就好,具体应用待日后在议)
-
-
- Project Manager-即工程管理
-
-
- Project-在此管理工程的文件位置,编译工具选择,工程名字等等,如下:
-
-
-
-
- 上图我们设置了工程名字为test
- 工程文件的保存位置
-
-
-
-
-
- 应用结构为基础Basic
- 所使用的编译工具为MDK-ARM,版本为v5
-
-
-
-
- Code Generator-在此暂时不去明白所有的内容含义:
- 必须要勾选Generated files里的第一个选项-Generate peripheral initialization as a pair of‘.c/.h’files per peripheral
-
-
-
- 即为每个外设生成各种对应的.c/.h文件
- 其实其他选项也是可以被理解的
-
-
- Tools-工具
-
-
- 这个选项不需要去配置
-
- 之后直接点击右上角的GENERATE CODE-生成代码即可新建一个hal库工程
三.工程结构介绍
- 共有四个初始文件夹
-
- Application/MDK_ARM
-
-
- 存放stm32g431启动文件
-
-
- Application/User
-
-
- 应用层
- 基础包括主函数main,初始化文件以及中断函数文件
-
-
-
- 比如我在Cube里设置PA11为输入模式,会在keil体现在代码gpio.c里(这样我们就节省了写相关GPIO设置代码的时间)
-
-
- Drivers/STM32G4xx_HAL_Driver
-
-
- 存放HAL底层驱动(类似标准库函数)
-
-
- Driver/CMSIS
-
-
- 存放G431芯片的底层代码
-
!!注意事项!!
- 利用Cube新建工程,工程目录必须是全英文的,不让会导致生成的Keil工程缺少startup启动文件