【STM32】:STM32CubeIDE 的应用


1. 安装 STM32CubeIDE

我设置的安装目录:D:\IDE\ST\STM32CubeIDE_1.19.0

1.1 导入项目

先关闭启动后打开的 Information Center。

  • 菜单项:File --> Open Projects from File System
    在这里插入图片描述

2. CubeIDE 的一些基本概念

  • 工作空间(Workspace):一个工作空间对于一个实际目录(F:\workspace_1.19.0),允许放置多个项目(Project)。
    – .metadata 文件夹用于存放工作空间 IDE 的各种配置文件,以及工作空间所管理的项目的信息档案。
    – 切换工作空间:File --> Switch Workspace。

  • 项目(Project):项目名称就是文件夹名称(demo_led)。
    – .settings :管理项目信息的子目录。
    – *.ioc文件 :CubeMX 项目资料。

  • 视图(View):一些功能子界面,菜单项:Window --> Show View,一些常用的视图如下。
    – Project Explorer:显示任务目录和文件。
    – SFRs:显示MCU 特殊寄存器的内容。
    通过– Outline:显示一个文件内代码概览,能够显示文件内的函数,宏,类型,变量等各种定义。

  • 场景(Perspective):多个视图组成的一种工作界面,一个场景一般对应与一种工作需求,菜单项:Window --> Perspective --> Open Perspective --> Other… 会看到最常用的三种场景。在这里插入图片描述
    – C/C++(default):最常用。
    – Debug:程序调试。
    – Device Configuration Tool:内置 CubeMX 操作界面。

2.1 CubeIDE 软件库设置

  • 菜单项:Window --> Preferences
    在这里插入图片描述
    推荐和 CubeMX 一样的设置。
  • 注意:每次换新的工作空间,该界面设置都会恢复默认值,应该重新设置。

3. C/C++ 场景的界面机制和执行

3.1 主导视图

  • Project Explorer:方案目录文件夹和文件。在这里插入图片描述
  • 文本编辑:显示和编辑文本文件。在这里插入图片描述
  • Outline:文本编辑中程序的提纲,例如程序中的类型,变量,常量,函数等。在这里插入图片描述
  • Console:编译过程和结果信息。在这里插入图片描述
  • Problems:编译过程出现的警告,错误等信息,双击可定位到错误的软件行。在这里插入图片描述

3.2 工具栏作用

  • 菜单项:Window --> Perspective --> Customize Perspective 自定义场景,设计自己习惯使用的工具栏。

  • Open Element:在整个项目中按关键词搜索。在这里插入图片描述在这里插入图片描述

  • 场景切换工具栏按钮:快速切换场景。在这里插入图片描述

3.3 文本编辑器效果和操作

  • 菜单项:Window --> Preferences,找到 General\Apperance 可以设置界面主题和编辑器字体。
  • 在文本编辑器里:CTRL 和 + 号放大字体,CTRL 和 - 号缩小字体。
  • 鼠标指针在某个类型、变量、函数上停留时,会出现悬浮的文本框表现源代码。
  • 若要跳转到某个类型、变量、函数的源代码处,鼠标停留加按 F3 键。

4. CubeMX 项目文件组成

4.1 CMSIS 驱动文件

  • 具体型号 MCU 相关定义文件
    在这里插入图片描述

    1. stm32f407xx.h:所有外设的地址映射和数据结构定义,外设寄存器的定义,用于访问外设寄存器的宏定义。
    2. stm32f4xx.h:根据项目的编译符号定义,在条件编译中包含具体的 MCU 定义头文件,条件编译符号 STM32F407xx 和 USE_HAL_DRIVER 可以在编译设置中定义,菜单项:Project --> Properties,找到 C/C++ Build\Setting,找到MCU/MPU GCC Compiler\Preprocessor,就可以看到两个预处理符号。在这里插入图片描述在这里插入图片描述
    3. system_stm32f4xx.h:定义了系统初始化函数 SystemInit(); 这个函数在架构复位之后,main()函数之前调用。
  • ARM 内核驱动记录在这里插入图片描述

4.2 HAL 驱动档案

  • STM32F4xx 系列器件的 HAL 驱动程序,\Inc 是头文件,\Src是程序文件,每一种外设有一个基本驱动文件(如:stm32f4xx_hal_gpio.h),有的还有一个扩展驱动记录(如:stm32f4xx_hal_gpio_ex.h)。在这里插入图片描述
    1. stm32f4xx_hal.h:HAL驱动的宏定义和函数定义,HAL_Init() 初始化 HAL 库,HAL_Delay() 实现 ms 级延时。带有 __weak 修饰符的是弱函数,需要自己重新实现功能。
    2. stm32f4xx_hal_def.h:HAL 的一些通用定义,包括枚举,宏定义,结构体等,例如:类型 HAL_StatusTypeDef。在这里插入图片描述
    3. stm32f4xx_hal_cortex.h:关于 cortex 内核的常量,结构体,函数定义,如:中断优先级定义和设置函数等。

4.3 用户程序文档

  • Core 下面的 Inc 和 Src 目录下,每个启用的外设都会生成一个外设初始化程序文件。在这里插入图片描述

    1. GPIO 初始化程序文件 gpio.h 和 gpio.c,MX_GPIO_Init() GPIO初始化函数。
    2. stm32f4xx_hal_conf.h:HAL 驱动程序的一些配置,例如:启用 MCU 上哪些外设模块,对 RCC 时钟频率的设置,都是根据 CubeMX 配置自动生成,不需要修改此档案。
    3. stm32f4xx_it.h:中断服务例程(ISR)定义,SysTick_Handler() 是系统定时器 Systick 的 ISR,系统定时器 Systick 每 1ms 中断一次,HAL_Delay() 依靠它建立 ms 级延时。
    4. stm32f4xx_hal_msp.c:MSP 程序文件,HAL_MspInit() MSP 初始化函数,针对具体 MCU 的一些初始化工作,对 stm32f4xx_hal.c 中弱函数 __weak void HAL_MspInit(void) 的重新构建。
    5. system_stm32f4xx.c:完成 SystemInit() 和 SystemCoreClockUpdate() 函数。
    6. syscalls.c 定义了一些底层函数,sysmem.c 定义了内存管理函数。
    7. 主程序。就是main.h 和 main.c
  • 一个汇编语言工具,MCU 复位后首先执行的程序,初始化堆栈指针 SP 和代码指针 PC,设置中断程序向量表,执行 SystemInit() 函数,再执行主函数 main()。就是\Startup 目录下的是启动文件,

5. 项目管理

  • 一个工作空间可以管理多个项目,建议打开一个,其他的关闭,通过右键 Open Project 或者 Close Project 做到。
  • 菜单项:Project --> Clean Project:清理项目构建生成的中间文件和二进制文件。
  • 右键点击项目 Refresh(刷新),刷新工程文件。
  • 生成 .hex 文件,菜单项:Project --> Properties 打开 C/C++ Build\settings 。在这里插入图片描述

posted @ 2026-01-08 12:33  yangykaifa  阅读(598)  评论(0)    收藏  举报