STM32CubeIDE解析cubeMX图形经验分享

STM32CubeIDE解析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】 功能页面

bb27fb94ea864a8c961c6d6bad57700b.png (91.09 KB, 下载次数: 7)

下载附件

保存到相册

2023-4-6 17:34 上传

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

68ac0f04c294405b968ae58f80833c9a.png (155.64 KB, 下载次数: 6)

下载附件

保存到相册

2023-4-6 17:34 上传

2.2 通信接口外设配置

【1】CAN外设

f20a9d248dbd4e959d43ded10f321439.png (159.73 KB, 下载次数: 3)

下载附件

保存到相册

2023-4-6 17:34 上传

【2】FMC外设

e8160fed79834ae29282b46b2b8b5126.png (91.25 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

【3】I2C外设

58ae51f59bf240aab108b0567d8a0e73.png (136.49 KB, 下载次数: 7)

下载附件

保存到相册

2023-4-6 17:34 上传

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

c7a53e59729c4b3c9577e7dcf008d7b3.png (139.74 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

【5】QUADSPI外设

b828c26d7cb64ed49cba56766aaae270.png (125.78 KB, 下载次数: 3)

下载附件

保存到相册

2023-4-6 17:34 上传

【6】SDMMC外设

17446a65177a4aca801a1a151e4044a0.png (117.74 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

【7】SPI外设

78713c18aa7540a28bd5ce62b7cf4904.png (117.88 KB, 下载次数: 3)

下载附件

保存到相册

2023-4-6 17:34 上传

【8】SWPMI外设

f7c2dc21f1144a22affb9c66576b6057.png (118.32 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

【9】USB外设

9bd87a6c163b408b95ac44da2aa2069a.png (113.3 KB, 下载次数: 7)

下载附件

保存到相册

2023-4-6 17:34 上传

2.3多媒体外设相关设置

【1】DCMI外设

09f0135d0a674579b05c30266a264c90.png (141.45 KB, 下载次数: 6)

下载附件

保存到相册

2023-4-6 17:34 上传

【2】DMA2D外设

a9923ea0dc034b1b9fa7eccb8bc728f8.png (116.74 KB, 下载次数: 6)

下载附件

保存到相册

2023-4-6 17:34 上传

【3】LCD外设

fcacb89ed45e43b2a06d7759f37cb3ae.png (122.71 KB, 下载次数: 4)

下载附件

保存到相册

2023-4-6 17:34 上传

【4】SAI外设

d26ca4298bee4bde81306ba5551849b0.png (127.02 KB, 下载次数: 2)

下载附件

保存到相册

2023-4-6 17:34 上传

2.4 计算功能相关

【1】CRC校验计算

9169a2d7336e41d6b1bb9aad83f1e287.png (80.98 KB, 下载次数: 4)

下载附件

保存到相册

2023-4-6 17:34 上传

【2】DFSDM外设

DFSDM(Digital Filter for Sigma Delta Modulators)数字滤波模块,配合外设配合Σ-Δ器件的使用。

f40a702851904e1dbf5f3425fc50f586.png (119.16 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

2.5 中间件功能相关

【1】文件系统

0721a93d86d24ba9b0f1a31b5caf47b9.png (132.89 KB, 下载次数: 8)

下载附件

保存到相册

2023-4-6 17:34 上传

【2】嵌入式系统(FreeRTOS)

56a43a3bbd1c44f7a22c6afcb71a3afb.png (142.76 KB, 下载次数: 6)

下载附件

保存到相册

2023-4-6 17:34 上传

【3】触控感应

ccd2d10142384d31a746f2e05d38dc09.png (126.2 KB, 下载次数: 2)

下载附件

保存到相册

2023-4-6 17:34 上传

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

aeaffe28c4f2498180033a6e11b12b26.png (128.99 KB, 下载次数: 6)

下载附件

保存到相册

2023-4-6 17:34 上传

2.6 定时器

【1】低功耗定时器

392bc32f2d4e4d4eb07863931fc4d142.png (171.62 KB, 下载次数: 3)

下载附件

保存到相册

2023-4-6 17:34 上传

【2】RTC实时时钟

7e1c8b361b0a45d9857501496de7aa40.png (122.62 KB, 下载次数: 4)

下载附件

保存到相册

2023-4-6 17:34 上传

【3】普通定时器

STM32的普通定时器分为高级定时器、 通用定时器 、基本定时器三种。这三个定时器成上下级的关系,即基本定时器有的功能通用定时器都有,而且还增加了向下、向上/向下计数器、PWM生成、输出比较、输入捕获等功能;而高级定时器又包含了通用定时器的所有功能,另外还增加了死区互补输出、刹车信号。

e7078e64c48d4f4b803680e48e414595.png (181.41 KB, 下载次数: 6)

下载附件

保存到相册

2023-4-6 17:34 上传

2.7 系统内核相关

【1】系统

f2a2c830818e4adb8d7eaf22264afc97.png (113.25 KB, 下载次数: 7)

下载附件

保存到相册

2023-4-6 17:34 上传

【2】系统时钟设置

84391938cc0f49288d1e46b89849f58b.png (123.22 KB, 下载次数: 3)

下载附件

保存到相册

2023-4-6 17:34 上传

【3】中断功能总述

205235132a7f4518b3b2997849a9a1d6.png (209.41 KB, 下载次数: 3)

下载附件

保存到相册

2023-4-6 17:34 上传

【4】DMA功能总述

b51b830a9bff4059bb26cc893bc45c3b.png (68.6 KB, 下载次数: 7)

下载附件

保存到相册

2023-4-6 17:34 上传

【5】GPIO引脚配置总述

f9548c5ce1a94bb8a09735c59f3e79cf.png (137.65 KB, 下载次数: 6)

下载附件

保存到相册

2023-4-6 17:34 上传

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

6ebcbc58e63b416387d6ff0a011c5da8.png (109.35 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

【7】User Constants

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

24fc8909e871473396b149fca6fbae5c.png (152.69 KB, 下载次数: 6)

下载附件

保存到相册

2023-4-6 17:34 上传

三、时钟树设置

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

665f993b05524f8c9d18318cc29724b4.png (209.26 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

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

四、图形窗口设置

4.1 软件包

192217e246d44bc48520bae2cadd44a8.png (194.87 KB, 下载次数: 3)

下载附件

保存到相册

2023-4-6 17:34 上传

4.2 端口视图

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

22de6c0299054382a2214c7fd2d28886.png (170.47 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

4.3 系统视图

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

4f21955b5008478f80d5c38cee2161c8.png (49.53 KB, 下载次数: 3)

下载附件

保存到相册

2023-4-6 17:34 上传

五、工程页面配置

5.1 工程配置

227f5438abcb4edf801bdf3d7c9cda57.png (80.55 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

5.2 代码生成页面

f542ab24402045cabb254c594d25c5bc.png (97.15 KB, 下载次数: 4)

下载附件

保存到相册

2023-4-6 17:34 上传

5.3 工程高级配置页面

ae87c7439b004ab0921e83e1babc7325.png (106.11 KB, 下载次数: 5)

下载附件

保存到相册

2023-4-6 17:34 上传

六、生成代码概述说明

在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并加载准备编辑,构建和调试的项目。

————————————————

版权声明:py_free-物联智能

如有侵权请联系删除