3.2.3 STM32CubeMX的使用

更新于 2026年10月10日 版权声明
3.2.3 STM32CubeMX的使用

STM32CubeMX可以实现MCU选型、引脚配置、系统时钟设置、外设时钟设置、外设参数配置和中间件参数配置,它给STM32开发者们提供了一种简单、方便、直观的方式来完成这些工作。

本小节以为芯片STM32F103ZET6设计一个闪烁灯(PB10外接一只发光二极管)为例,来介绍STM32CubeMX的使用,包括新建工程和应用配置等内容。

1.新建工程

在STM32CubeMX中,新建工程有4种方式:选择MCU/MPU型号、选择MCU开发板、选择例程和选择MCU交叉选择器。单击“File”→“New Project”选项,在弹出的对话框中可以看到新建工程的4种方式,如图3.7所示。

图示

图3.7 新建工程的4种方式

(1)选择MCU/MPU型号。

在“MCU/MPU Selector”选项卡中,可以按照Flash/RAM大小、外设、封装、价格等条件来筛选符合应用需求的产品型号。

对于其他如网络、USB、人工智能、图形等的应用,STM32CubeMX会计算大致需要的Flash和RAM大小,同时在右侧的列表栏中列出满足要求的MCU型号。

(2)选择MCU开发板。

在“Board Selector”选项卡中,可以按照开发板类型、板载MCU/MPU的系列、MCU/MPU支持的外设和Flash/RAM大小选择某个开发板,新建一个基于该开发板的工程。STM32CubeMX将自动根据该开发板默认硬件配置,初始化对应的外设。比如,NUCLEO-F401RE板上默认用到了USB接口,那么选择NUCLEO-F401RE板后,新建的STM32CubeMX工程默认就已经配置好了USB外设。

(3)选择例程。

在“Example Selector”选项卡中,可以通过各个过滤项来选择一个运行在某个具体开发板上的例程,以此来创建一个工程。比如,选择运行在NUCLEO-F103 RB板上的模拟/数字转换器(Analog-Digital Conrersion,ADC)例程后,STM32CubeMX可以自动生成IAR、Keil或SW4STM32工程,直接编译就可以运行。

(4)选择MCU交叉选择器。

在“Cross Selector”选项卡中,开发者可以找到能够替换当前使用的MCU/MPU的STM32产品,并且可以选择多个型号进行比较。比如,选择NXP的LPC1115,系统会列出STM32G031等一系列的可替代产品。

根据实际需要,可以选择这4种方式中的任意一种来新建STM32CubeMX工程。例如,从选择MCU/MPU型号开始创建,选择芯片STM32F103ZET6,单击右边的“Start Project”按钮就可进入芯片具体配置界面。

2.应用配置

新建工程后,还需要对具体应用进行配置,例如要选择外设,并配置外设参数。应用配置界面如图3.8所示,主要有“Pinout&Configuration”(外设及中间件配置)、“Clock Configuration”(时钟配置)、“Project Manager”(工程管理)和“Tools”(工具配置)4个选项卡。

图示

图3.8 应用配置界面

(1)外设及中间件配置。(https://www.daowen.com)

外设及中间件配置包括7项内容。其中,“System Core”(系统内核)涉及DMA、GPIO、IWDG、NVIC、RCC、SYS、WWDG配置;“Analog”(模拟)主要是针对ADC和数字/模拟转换器(Digital-Analog Conrersion,DAC)的配置;“Timers”(定时器)主要包括实时时钟(RealTime Clock,RTC)和定时器TIM1~TIM8的配置;“Connectivity”(无线连接)主要包括与通信相关的CAN、FSMC、I2C、SDIO、SPI、UART、USART、USB配置;“Multimedia”(多媒体技术)主要是音频总线I2S的配置;“Computing”(计算)主要是CRC校验配置;“Middleware”(中间件)主要是FATFS、FreeRTOS、USB_DEVICE的配置。

本例中需要配置PB10为输出。在“Pinout view”(图形化芯片)中选择“PB10”选项,选择“GPIO_Output”选项将PB10设置为输出,然后在“System Core”下拉列表中选择“GPIO”选项,可查看配置信息,PB10配置图如图3.9所示。

图示

图3.9 PB10配置图

另外,程序中会用到延时,因此需要配置一个基准时钟。本例中选择内核的节拍定时器SysTick为基准时钟,在“SYS”中的“Timebase Source”中选择“SysTick”选项即可。如果应用项目还有其他外设需要配置,依次选择相关的外设,为其配置参数即可。

(2)时钟配置。

时钟配置主要用于配置STM32MCU的时钟源(内部、外部时钟和高速、低速时钟)、是否使用PLL(Phase-Locked Loop)倍频、PCLK1时钟分频、PCLK2时钟分频等参数。本例采用内部8 MHz的“HSI RC”时钟源,无倍频,如图3.10所示。

图示

图3.10 时钟配置

(3)工程管理。

工程管理主要包括“Project”(工程)、“Code Generator”(代码发生器)、“Advanced Settings”(高级设置)等选项。在“Project”配置界面主要有“Project Name”(工程名)、“Projcet Location”(工程存放路径)、“Application Structure”(应用程序结构)、“Toolchain Folder Location”(工具链文件夹路径)、“Toolchain/IDE”(工具链/IDE)配置。其中,“Toolchain/IDE”下拉列表中有4个选项,分别是“EWARM”“MDK-ARM”“STM32CubeIDE”“Makefile”。本例中选择“MDK-ARM”选项,版本号选择“V5”,如图3.11所示。

图示

图3.11 工程管理

“Code Generator”配置界面如图3.12所示,在其中可选择STM32的HAL库软件包和生成的文件内容。其中,软件包的“STM32Cube MCU packages and embedded software packs”选项组中有3个单选项,分别是“复制所有的库文件到工程”“复制必要的库文件到工程中”“添加必要的库文件作为引用工程链项目配置文件”,如图3.12所示。

图示

图3.12 “Code Generator”配置界面

“Generated files”选项组中是复选框,可根据实际情况勾选多个,这些复选框分别是“外设以.c/.h形式生成单独文件”“重新生成时备份以前生成的文件”“重新生成时保留用户代码”“当没有重新生成时,删除以前生成的文件”。

(4)工具配置。

工具配置主要是对STM32的运行模式等相关参数进行配置,在应用过程中,一般采用默认设置即可。

以上参数配置好以后,单击配置界面右上角的“GENERATE CODE”按钮,生成MDK-ARM的工程文件,文件中包含了对PB10的初始化、时钟初始化、基准时钟初始化等STM32运行的必要初始化。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)