cubeIDE开发, 全面解析cubeMX图形配置工具

一、cubeIDE 集成cubeMX

        STM32CubeMX是st公司早期产品,现已经成为STM32Cube开发套件的一部分,直接集成到cubeIDE 开发平台省,是一种芯片引脚图形配置工具,可以非常轻松地配置STM32微控制器和微处理器,以及为Arm® Cortex®-M内核或面向Arm® Cortex®-A内核的特定Linux®设备树生成相应的初始化C代码。

        STM32CubeMX配置分布过程:

        【1】选择与所需外设集匹配的意法半导体STM32微控制器、微处理器或开发平台,同时包括在特定开发平台上运行的示例。

        【2】对于微处理器,允许配置GPIO和设置整个系统的时钟,并交互地将外设分配给Arm® Cortex®-M或Cortex®-A内核。特定实用工具(如DDR配置和微调)增强了STM32微处理器的易用性。对于Cortex®-M内核,配置包含了额外步骤,与微控制器的十分相似。

        【3】对于微控制器和微处理器Arm® Cortex®-M,通过引脚分配冲突处理器、时钟树设置助手、功耗计算器,以及用于配置外设(如GPIO或USART)和中间件栈(如USB或TCP/IP)的实用工具来配置各个必需的嵌入式软件。

        【4】借助增强型STM32Cube扩展包,可扩展默认软件和中间件栈。通过STM32CubeMX中可用的专用包管理器,直接下载意法半导体或意法半导体合作伙伴提供的软件包,其他软件包可以从本地驱动器进行安装。

        【5】STM32CubeMX中的独特实用程序STM32PackCreator可帮助开发人员构建自己的增强型STM32Cube扩展包。

        【6】用户可以生成与所选配置匹配的软件包。这一步提供Arm® Cortex®-M初始化C代码(可随时用于多个开发环境),或面向Arm® Cortex®-A的部分Linux®设备树。

二、STM32CubeMX界面简介

        下面将基于STM32L496VGTX型号芯片为示例,全面阐述STM32CubeMX可支持到那些配置功能。

        2.1 总界面及支持功能

       【1】 功能页面

cubeIDE开发, 全面解析cubeMX图形配置工具_第1张图片

         【2】支持配置的功能栏目

cubeIDE开发, 全面解析cubeMX图形配置工具_第2张图片

         2.2 通信接口外设配置

        【1】CAN外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第3张图片

         【2】FMC外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第4张图片

        【3】I2C外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第5张图片

        【4】串口通信外设(LPUSART*和USART*)

cubeIDE开发, 全面解析cubeMX图形配置工具_第6张图片

         【5】QUADSPI外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第7张图片

        【6】SDMMC外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第8张图片

        【7】SPI外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第9张图片

        【8】SWPMI外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第10张图片

        【9】USB外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第11张图片

2.3多媒体外设相关设置

        【1】DCMI外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第12张图片

        【2】DMA2D外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第13张图片

        【3】LCD外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第14张图片

        【4】SAI外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第15张图片

2.4 计算功能相关

        【1】CRC校验计算

cubeIDE开发, 全面解析cubeMX图形配置工具_第16张图片

        【2】DFS算法外设

cubeIDE开发, 全面解析cubeMX图形配置工具_第17张图片

2.5 中间件功能相关

        【1】文件系统

cubeIDE开发, 全面解析cubeMX图形配置工具_第18张图片

        【2】嵌入式系统(FreeRTOS)

cubeIDE开发, 全面解析cubeMX图形配置工具_第19张图片

        【3】触控感应

cubeIDE开发, 全面解析cubeMX图形配置工具_第20张图片

        【4】USB(USB设备、USB主机)

cubeIDE开发, 全面解析cubeMX图形配置工具_第21张图片

 2.6 系统内核相关

        【1】系统

cubeIDE开发, 全面解析cubeMX图形配置工具_第22张图片

         【2】系统时钟设置

cubeIDE开发, 全面解析cubeMX图形配置工具_第23张图片

         【3】中断功能总述

cubeIDE开发, 全面解析cubeMX图形配置工具_第24张图片

        【4】DMA功能总述

cubeIDE开发, 全面解析cubeMX图形配置工具_第25张图片

         【5】GPIO引脚配置总述

cubeIDE开发, 全面解析cubeMX图形配置工具_第26张图片

        【6】看门狗(独立看门狗(硬)、窗口看门狗(软))

cubeIDE开发, 全面解析cubeMX图形配置工具_第27张图片

        【7】User Constants

        各个外设及功能都支持自定常量,其实就是在图形配置设置宏定义,各个外设及功能配置页面定义的User Constants均会在main.h中#define声明。

cubeIDE开发, 全面解析cubeMX图形配置工具_第28张图片

 三、时钟树设置

        时钟树综合配置,各个最终频率是否生效取决与前面外设功能开启及配置,最终频率数值则由时钟源+各个选择器、分频器、倍频器加权后计算得到。当使用外部时钟源时,必须先启用它们 在RCC外围设备上可用的引脚视图。

cubeIDE开发, 全面解析cubeMX图形配置工具_第29张图片

        当MCU支持时,启用HSE上的时钟安全系统(CSS) 只有当HSE时钟直接或通过PLL间接用作系统时钟源时才能使用该功能。 它可以检测HSE 故障并通知软件,从而允许MCU执行救援操作。 当MCU支持时,在LSE上启用CSS 只有当LSE和LSI被使能并且RTC或LCD时钟源被选择为LSE或LSI之后,该功能才可用。 

四、图形窗口设置

        4.1 软件包

cubeIDE开发, 全面解析cubeMX图形配置工具_第30张图片

        4.2 端口视图

        pinout菜单主要就是针对引脚图形配置界面提供的相关快捷功能或显示功能设定。

cubeIDE开发, 全面解析cubeMX图形配置工具_第31张图片

        4.3 系统视图

        点击已开启功能将会自动弹出相应的外设或功能配置页面。

cubeIDE开发, 全面解析cubeMX图形配置工具_第32张图片

五、工程页面配置

        5.1 工程配置

cubeIDE开发, 全面解析cubeMX图形配置工具_第33张图片

        5.2 代码生成页面

cubeIDE开发, 全面解析cubeMX图形配置工具_第34张图片

        5.3 工程高级配置页面

cubeIDE开发, 全面解析cubeMX图形配置工具_第35张图片

 六、生成代码概述说明

        在C代码生成过程中,STM32CubeMX执行以下操作:
        【1】 如果缺失,则从用户存储库下载相关的STM32Cube固件包。 STM32CubeMX存储库文件夹可在帮助>更新器设置菜单中指定。
        【2】如果选择了中间件,它将从固件包,Drivers / CMSIS和Drivers /STM32L4_HAL_Driver文件夹中的相关文件以及Middleware文件夹中复制。
        【3】它生成对应于用户MCU配置的初始化C代码(.c / .h文件),并将其存储在Inc和Src文
件夹中。 默认情况下,还包含以下文件(具体文件名与芯片型号有关):

  •  – – stm32l4xx_hal_conf.h文件:该文件定义启用的HAL模块,并将一些参数(例如外部高速振荡器频率)设置为预定义的默认值或根据用户配置(时钟树)。
  • – – stm32l4xx_hal_msp.c(MSP = MCU支持包):该文件定义了所有初始化函数,根据用户配置(引脚分配,时钟使能,DMA使用和中断)配置外设实例。
  • – – stm32l4xx_it.h/.c文件:中断处理程序
  •  – – system_stm32l4xx.c文件:实现SystemInit、SystemCoreClock、SystemCoreClockUpdate相关函数及一些全局变量。
  • – – sysmem.c文件:系统内存调用函数实现
  •  – – syscalls.c文件:最简系统实现,使用标准C库函数
  • –– main.c负责:
  1.  通过调用重置所有外设的HAL_init()函数将MCU重置为已知状态,初始化闪存接口和SysTick。
  2.  配置和初始化系统时钟。
  3.  配置和初始化未被外设使用的GPIO。
  4.  为每个配置的外设定义和调用一个外设初始化函数,该函数定义一个句柄结构,该句柄结构将被传递到相应的外设HAL初始化函数,然后调用外设的HAL MSP初始化函数。 请注意,当使用LwIP(分别为USB)中间件时,底层以太网(分别为USB外设)的初始化C代码将从main.c移至LwIP(分别为USB)初始化C代码本身。
  •  – – main.h文件:该文件包含与Pinout选项卡中设置的引脚标签相对应的定义语句,以及从Configuration选项卡添加的用户项目常量。

        【4】最后,它会生成一个Projects文件夹,其中包含与用户项目设置相匹配的工具链特定文
件。 双击IDE特定的项目文件启动IDE并加载准备编辑,构建和调试的项目。

你可能感兴趣的:(STM32开发案例,stm32,cubeIDE,stm32Cube,cubeMX,嵌入式开发)