【转载】使用TM32CubeMX 图形配置工具生成STM32 工程代码

 

版权声明:本文为CSDN博主「诺亚方包」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_40973138/article/details/89044372

 

 

STM32CubeMX 教程

简介:

STM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具,允许用户使用图形化向导生成 C 初始化代码。

其特性如下:

  1. 直观的选择 MCU 型号,可指定系列、封装、外设数量等条件;
  2. 微控制器图形化配置;
  3. 自动处理引脚冲突;
  4. 动态设置时钟树,生成系统时钟配置代码;
  5. 可以动态设置外围和中间件模式和初始化;
  6. 功耗预测;
  7. C 代码工程生成器覆盖了 STM32 微控制器初始化编译软件,如 IAR,KEIL,GCC;
  8. 可以独立使用或者作为 Eclipse 插件使用。
    注意:STM32Cube包含 STM32CubeMX 图形工具和 STM32Cube 库两个部分,使用 STM32CubeMX 配置生成的代码,是基于 STM32Cube 库的。
    不同的 STM32 系列芯片,会有不同的 STM32Cube 库支持,而 STM32CubeMX 图形工具只有一种。所以我们配置不同的 STM32 系列芯片,选择不同的 STM32Cube 库即可。
    在这里插入图片描述

STM32CubeMX 运行环境搭建

STM32CubeMX 运行环境搭建包含两个部分。首先是 Java 运行环境安装,其次是STM32CubeMX 软件安装。

Java 软件安装

Java 的安装直接去官网安装即可 www.java.com
注意:STM32CubeMX 的 Java 运行环境版本必须是 V1.7 及以上,如果你的电脑安装过 V1.7 以下版本,请先删掉后重新安装最新版本

STM32CubeMX 软件安装

STM32CubeMX 的安装同样直接去官网安装即可http://www.st.com/stm32cube

运行STM32CubeMX 并生成工程代码

软件设置

安装完成STM32CubeMX 并打开:
在这里插入图片描述
首先需要在软件中指定STM32Cube 软件包:点击Help >> Updater Settings
在这里插入图片描述
在Repository Folder 中选择stm32cubexL4 固件包存放目录。
(stm32cube 文件夹名字遵循 STM32Cube_FW_Lx_Vm.n.z 格式,我们指定的“Repository Folder”下面必须存在一个或者多个STM32Cube_FW_Lx_Vm.n.z格式程序包,在STM32CubeMX生成工程的时候,会根据我们选择的芯片型号,去这个目录加载必要的库文件)

使用STM32CubeMX 工具配置工程模板

大多数情况下,我们都只使用 STM32CubeMX 来生成工程的时钟系统初始化代码以及外设的初始化代码,因为用户控制逻辑代码是无法在 STM32CubeMX 中完成的,需要用户自己根据需求来实现。

使用 STM32CubeMX 配置工程的一般步骤:

  1. 工程初步建立并保存;
  2. RCC 设置;
  3. 时钟系统(时钟树)配置;
  4. GPIO 功能引脚配置;
  5. 生成工程源码。

1. 工程初步建立并保存

在这里插入图片描述
在软件初始界面中点击:File >> New Project
弹出MCU 选择窗口进行配置(我以STM32L475 为例):
在这里插入图片描述
左侧一栏选择完成后双击中间第二条(STM32L475VETx)确定选择。
防止软件使用过程中出现意外导致工程没有及时保存,此时先保存一遍,点击:File >> Save Project
在这里插入图片描述
软件工程建立好后(未生成代码):
在这里插入图片描述
在引脚图中,我们可以对引脚功能进行配置。黄色的引脚主要是一些电源和 GND 引脚,如果某个引脚已经被使用,那么会显示为绿色。

2. RCC 设置

按照图片选择这一栏,并选择Crystal/Ceramic Resonator,即设置HSE 的值为使用晶振/陶瓷振荡器。

并可观察到在设置了RCC 时钟后,引脚图中相应管脚由灰变绿:在这里插入图片描述
配置好RCC 后,接下来配置时钟系统树。

3. 时钟系统(时钟树)配置;

在这里插入图片描述
以上设置完成后,HCLK=80MHZ,Systick=80MHz,PCLK1=80MHz,PCLK2=80MHz。
配置完时钟系统之后,这个时候如果我们直接使用软件生成工程,那么我们就可以从工程中提取系统时钟初始化配置相关代码。

4. GPIO 功能引脚配置

在图示位置进行GPIO 引脚搜索,即可找到需要配置的引脚:
在这里插入图片描述
然后便对相应引脚进行输入输出复用等功能进行配置:
在这里插入图片描述
我将PE7、PE8、PE9 都设置为输出模式:
在这里插入图片描述
配置完IO 口功能之后,还要配置 IO 口的速度,上下拉等参数:
在这里插入图片描述
依次点击引脚进行配置:
在这里插入图片描述
在这里插入图片描述

5. 生成工程源码

在生成源码之前首先配置一下生成文件的属性:
在这里插入图片描述
然后点击GENERATE CODE
在这里插入图片描述
在这里插入图片描述
随后可以看到目标文件夹中有如下文件:
在这里插入图片描述

  1. Drivers 文件夹存放的是 HAL 库文件和 CMSIS 相关文件;
  2. Inc 文件夹存放的是工程必须的部分头文件;
  3. MDK-ARM 下面存放的是 MDK 工程文件;
  4. Src 文件夹下面存放的是工程必须的部分源文件;
  5. Template.ioc 是 STM32CubeMX 工程文件。

打开MDK-ARM 中的工程文件并编译:
在这里插入图片描述
在这里插入图片描述
我们就可以发现该工程文件当中确实按照我们设置的那样写好了RCC 和GPIO 配置函数:
在这里插入图片描述
在这里插入图片描述

注意:STM32CubeMX 生成的main.c 文件中,有很多地方有“/* USER CODE BEGIN X /”和“/ USER CODE END X */”格式的注释,我们在这些注释的 BEGIN 和 END 之间编写代码,那么重新生成工程之后,这些代码会保留而不会被覆盖。

大多数情况下,我们使用 STM32CubeMX 主要用来配置时钟系统和外设初始化代码。

 
posted @ 2022-02-13 09:02  张志伟122  阅读(478)  评论(0编辑  收藏  举报