STM32CubeMX新建工程详细步骤
STM32CubeMX新建工程详细步骤
STM32CubeMX是ST公司为STM32系列微控制器开发的图形化配置工具,能够帮助开发者快速配置和生成工程代码。本文将详细介绍使用STM32CubeMX配置工程的步骤,包括工程建立、时钟源设置、时钟系统配置、GPIO功能引脚配置、Cortex-M4内核配置以及生成工程源码等环节。
工程初步建立(新建工程,选择芯片的型号)
使用STM32CubeMX配置工程的一般步骤如下:
- 工程初步建立(新建工程,选择芯片的型号)
- HSE和LSE时钟源设置(时钟模块设置)
- 时钟系统(时钟树)配置(包括PLL、SYSCLK、AHB、APB1、APB2等)
- GPIO功能引脚配置
- Cortex-M4内核基本配置(限定项)即SYS(DEBUG)配置、NVIC优先级分组
- 生成工程源码
- 用户程序(main.c)
PS:使用Cubemx的时候,创建文档,需要先修改一下路径。先点击Help,再点击,免得都存在C盘里。
1. 工程初步建立
新建工程有两个方法:
- 方法一:可以点击“File”,“New Project”即可建新工程。
- 方法二:直接点击 ACCESS TO MCU SELECTOR选项
随后会进入到芯片选型的界面,可自行根据项目需求选择相应的MCU。芯片型号选择后会弹出图形化界面。
2. HSE和LSE时钟源设置
进入图形化设计界面后,首先需要设置时钟源HSE和LSE。依此点击Pinout&Configuration->RCC->HSE以及LSE,均选择Crystal/Ceramic Resonator,表示外部晶振作为它们的时钟源。查询MCU外围电路的原理图可得其外部高速晶振和外部低速晶振分别是:8MHz和32.768KHz,因此HSE时钟频率就是8MHz,LSE时钟频率就是32.768KHz。
根据需求配置,用的最多的HSE高速外部时钟。选择Crystal晶振。
3. 时钟系统(时钟树)配置
点击Clock Configuration选项卡可弹出时钟树界面,主要配置外部晶振大小,分频系数,倍频系数以及选择器。LSE时钟主要配置看门狗以及RTC,倘若没用到这些外设可以暂时不配置。系统时钟的范围:在数据手册(产品手册)里面可以找到。其时钟必须在其工作限定之内。
PS:实在不了解时钟可以在HCLK输入框,直接输入我们要的时钟频率,这里是72MHz,摁下回车,其会自动配置,CubeMX会帮我们提供一种设置时钟频率和其它时钟的建议。
4. GPIO 功能引脚配置
以PE5及PB5两个GPIO口点亮LED灯为例,配置其引脚功能,可在右下角搜索框中搜索需要的引脚。点击PF5及PB5,在弹出的下拉菜单中,选择IO口的功能为GPIO_Output。IO口功能配置完之后,还要配置IO口的速度,上下拉等参数。这些参数通过System Core下的GPIO选项进行配置。GPIO mode我们已经在视图中配置为推挽输出了,这里不需要修改。GPIO Pull-up/Pull-down 默认是无上下拉,我们这里用默认配置。Maximum output speed 输出速度配置,默认是低速,我们设置为高速。User Label 用户符号,我们可以给PF5起一个别名 LED0。PB5也是按照这样的方法配置起一个别名LED1。
5. Cortex-M4 内核基本配置(限定项)
由于CubeMX默认关闭Debug选项,因此我们需要在SYS选项里需要选择debug功能,不然无法下载。选择串行即可。
在Project Manager界面里面需要设置一些选项。首先是Project Name(工程名称)以及Project Location(工程保存路径)不能有中文字符。
Toolchain Folder Location:工具链文件夹位置,默认即可。
Application Structure:应用的结构,选择Basic(基础),不勾选Do not generate the main(),因为需要其生成main函数。PS:advanced型和basic型的区别
advanced型和basic型的格式不同,一般推荐选择基础型,头文件和C文件分开放置。选择MDK-ARM,就可以用keil打开。
在Code Genernated里面配置。勾选 Generate peripheral initialization as a pir of ‘.c/.h’ files per peripheral,勾选这个选项的话将会将每个外设单独分开成一组.c、.h 文件。
6. 生成工程源码
点击SENERATE CODE即可生成工程源码。完整的工程生成完毕后,其结构如下所示:
- Drivers 文件夹存放的是 HAL 库文件和 CMSIS 相关文件。
- MDK-ARM 下面存放的是 MDK 工程文件。
- Src 文件夹下面存放的是工程必须的部分源文件。
- Atk-f103.ioc是STM32CubeMX工程文件,双击该文件就会在 STM32CubeMX 中打开。
7. 用户程序
PS:需要注意的是,STM32CubeMX生成的main.c文件中,有很多地方有“/* USER CODE BEGIN X /”和“/ USER CODE END X */”格式的注释,我们需要在这些注释的BEGIN和END之间编写代码,只有这样重新生成工程之后,这些代码会保留而不会被覆盖。