完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
背景知识视频教程
STM32CubeMX和STM32Cube HAL基础 STM32教程 STM32Fx微控制器自定义引导程序开发 我们将了解ST的此工具的工作方式,以及如何使用其生成的代码从头开始构建Eclipse项目。 这将使GNU ARM插件成为用于项目生成的不太重要的组件,从而使我们能够创建更好的代码并准备与STM32Cube HAL集成。 工具介绍 CubeMX是用于配置为我们的项目选择的微控制器的工具。 它既用于选择正确的硬件连接,又用于生成配置ST HAL所需的代码。 CubeMX是一个以MCU为中心的应用程序。 这意味着该工具执行的所有活动都基于: STM32 MCU系列(F0,F1等) 为您的设备选择的封装类型(LQFP48,BGA 144等) 我们项目中需要的硬件外围设备(USART,SPI等) MCU常规配置(如时钟,电源管理,NVIC控制器等) 除了与硬件相关的功能之外,CubeMX还能够处理以下软件方面: 所选MCU系列(CubeF0,CubeF1等)的ST HAL的管理 我们项目中需要的其他软件库功能(FatFs库,FreeRTOS等) 我们将用于构建固件的开发环境(IAR,TrueSTUDIO等) CubeMX旨在成为一个完整的项目管理工具。 但是,它有一些局限性,使其只能在电路板和固件开发的早期阶段使用。 启动CubeMX后,将显示一个漂亮的欢迎屏幕(请参见下图)。 单击New project将打开MCU和板选择器对话框,如下图所示。 该对话框是一个基于选项卡的窗口,具有两个主要选项卡:MCU选择器和板选择器。 第一个选项卡允许从整个STM32产品组合中选择一个微控制器。 使用“系列”组合框,我们可以过滤属于给定系列的所有MCU。 通过“行”组合框,可以进一步过滤属于一个子系列(值行等)的MCU。 软件包组合框允许选择所有具有所需软件包的MCU。 点击更多过滤器按钮,我们可以显示其他限制搜索的字段 Board Selector选项卡允许在所有正式的ST开发板之间进行过滤(参见下图)。 有3种开发板可供选择:Nucleo,Discovery和EvalBoard,它们是用于测试STM32 MCU的最完整(且最昂贵)的开发板。 显然,我们对Nucleo板感兴趣。 因此,首先选择Nucleo板的类型,然后单击“确定”按钮。 在“板选择器”视图中,“供应商”组合框下方有一个复选框。 标签上显示使用其默认模式初始化所有IP。 这是什么意思? 首先,让我们澄清一下,IP并不表示Internet协议,而是IP的缩写。 选中该框将导致CubeMX将自动为板上可用的所有外围设备生成C初始化代码,而不仅为与用户应用程序相关的外围设备生成C初始化代码。 例如,Nucleo板具有连接到STLINK接口的USART(USART2),该接口将其映射为虚拟COM端口。 选中该框,将对CubeMX发出提示,以生成所有必要的代码以初始化USART。 启用该功能似乎是一个不错的功能,但是对于新手来说,最好将该功能保持禁用状态,并仅在需要时才手动启用每个外围设备。 这简化了学习过程,避免了浪费大量时间试图一次理解所有生成的代码 一旦选择了要使用的MCU(或开发板),就会出现CubeMX主窗口,如下图所示。该视图以STM32 MCU的漂亮图形表示为主。 即使在这种情况下,我们也具有选项卡式视图。 让我们更深入地查看每个标签。 引脚视图 引脚视图是第一个视图,分为两部分。 右侧包含具有所选外设和GPIO的MCU表示,并由ST Chip视图调用。 在左侧,我们以树状视图的形式列出了可以与所选MCU一起使用的所有外围设备(硬件部件)和中间件库(软件部件)。 这由ST IP树窗格调用。 芯片视图 芯片视图可轻松导航到MCU配置内部,这是配置微控制器的一种非常方便的方法。 启用了亮绿色的引脚。 这意味着CubeMX将生成所需的代码以根据其功能配置该引脚。 例如,对于引脚PA5,CubeMX将生成将其设置为通用输出引脚所需的C代码。 如果未启用相应的外围设备,则该引脚为橙色。 例如,使能了PA2 PA和PA3引脚,并且CubeMX将生成相应的C代码以对其进行初始化,但是未启用相关的外设(USART2),并且不会自动生成设置代码。 黄色引脚是电源引脚,其配置无法更改。 BOOT和RESET引脚为卡其色,并且其配置无法更改。 显示了上下文工具提示,将鼠标指针移到MCU引脚上(参见下图)。 例如,针对PB3引脚的上下文工具提示告诉我们,信号映射到串行线调试(SWD)接口,并且充当串行线输出(SWO)引脚。 另外,还示出了引脚号(55)。 STM32 MCU允许将外设映射到不同的引脚。 例如,在STM32F401xE MCU中,SPI2 MOSI信号可以映射到引脚PC2或PB14。 CubeMX使您可以通过Ctrl + click轻松查看允许的替代方案。 如果存在备用引脚,则该引脚显示为浅蓝色(仅当该引脚未处于复位状态(即已启用)时,才会显示备用引脚)。 例如,在下图中,我们可以看到,如果在PC2引脚上按Ctrl +单击,则PB14信号将以蓝色突出显示。 这在电路板布局中非常方便。 如果真的很难将信号路由到该引脚,或者其他功能需要该引脚,则备用引脚可以简化电路板。 同样,大多数MCU引脚可以具有备用功能,见下图。 单击引脚时,将显示一个上下文菜单。 这使我们可以选择要对该信号启用的功能。 这种灵活性导致信号功能之间产生冲突。 CubeMX尝试自动解决这些冲突,将信号分配给另一个引脚。 固定信号是那些功能被锁定到特定引脚的引脚,从而阻止了CubeMX选择备用引脚。 当冲突导致无法使用外设时,将在“芯片视图”中禁用引脚模式,并且该引脚将显示为橙色。 IP树窗格 IP树窗格提供了一种方便的方法来启用/禁用以及配置所需的外围设备和软件中间件。 CubeMX使用图标和不同的颜色以灵巧的方式显示外围设备列表,因此用户可以快速了解外围设备是否可用以及其具有的配置功能。 让我们深入了解它们。 Case 1:表明外围设备可用并且当前被禁用,并且可以使用其所有可能的模式。 例如,在使用I²C接口的情况下,该外设的所有可能模式为:I²C,SMBus警报模式,SMBus两线接口(TWI) Csae 2:显示外围设备由于与另一外围设备发生冲突而被禁用。 这意味着两个外设都使用相同的GPIO,因此无法同时使用它们。 将鼠标移到它上面将会显示参与冲突的其他外围设备。 例如,对于STM32F401RE MCU,不可能同时使用I2C2和SWD调试引脚。 Case 3:表示外围设备可用并且当前被禁用,但是由于与其他外围设备的冲突,其至少一种模式不可用。 例如,在STM32F401RE MCU中,TIM2外设的第四通道使用PA2 GPIO,它是USART2外设的USART_RX信号。 这意味着在使用Nucleo VCP时,不能将TIM2通道4用作输入捕获。 Case 4:表示外设不适用于所选的封装类型(如果您强烈需要该外设,则必须切换到另一种封装类型-通常是带有更多引脚的封装类型)。 Case 5:表示已使用外设并且其所有模式均可用 Case 6:显示使用了外围设备,但某些模式或I / O不可用 Case 7:当所有外围设备模式均可用时,所有配置选项均以黑色显示 Case 8:当并非所有外围设备模式都可用时,不可用的配置选项显示为红色背景 时钟视图 时钟视图是进行与时钟管理相关的所有配置的区域。 在这里,我们可以设置主内核和外设时钟。 所有时钟源和PLL配置均以图形方式显示(见下图)。 用户第一次看到此视图时,可能会对配置选项的数量感到困惑。 但是,通过一点实践,这是处理STM32时钟配置的最简单方法(与8位MCU相比,这是相当复杂的)。 如果您的电路板设计需要高速时钟(HSE),低速时钟(LSE)或同时使用两者的外部源,则必须首先在RCC部分的Pinout视图中将其启用,如下图所示。 完成此操作后,您将能够在时钟视图中更改时钟源。 配置视图 配置视图允许进一步设置外围设备和软件组件。 例如,可以为GPIO引脚启用上拉或配置FATFS选项。 此视图中定义的配置选项会影响自动生成的C源代码。 对这个CubeMX部分的良好管理可以简化很多与外设优化有关的开发过程。 当我们处理每种类型的外围设备时,我们将分析每个配置视图。 功耗计算器视图 功耗计算器(PCC)视图是CubeMX的功能,在给定微控制器,电池模型和用户定义的电源序列的情况下,它可以估算以下参数: 平均耗电量 电池寿命 平均DMIPS 可以通过专用界面添加用户定义的电池。 对于每个步骤,用户都可以选择VBUS代替电池作为电源。 这将影响电池寿命估计。 如果可以在不同电压水平下进行功耗测量,则CubeMX还将建议选择电压值。 项目生成 一旦完成了MCU,其外围设备和中间件软件的配置,我们就可以使用CubeMX为我们生成C项目框架。 在本段中,我们将看到所有必需的步骤以: 创建一个新的“通用” Eclipse项目,准备接受CubeMX自动生成的C代码 将CubeMX生成的文件导入Eclipse项目中 根据需要配置项目 我们将使用来自最新的STCube框架的大部分代码来创建**闪烁应用**。 这也将使我们有机会开始理解STCubeHardware抽象层(HAL)的基础块。 一旦理解了此处说明的步骤,我们将完全自主地为STM32平台建立任何项目。 使用CubeMX生成C项目 第一步是使用CubeMX工具生成包含HAL初始化代码的C代码。 如果您已在上一段中进行了实验,则最好从板选择器工具中选择Nucleo板来启动一个全新的项目,如前所示。 一旦CubeMX创建了新项目,请转到Project-》 Settings…菜单。 出现Project Settings对话框,如下图所示。 在项目名称字段中,输入您想要的项目名称。 对于“项目位置”字段,最好在〜/ STM32Toolchain inside文件夹(对于Windows用户为C: STM32Toolchain)内创建一个文件夹。 一个好的文件夹名称可能是〜/ STM32Toolchain / cubemx-out。 在“Toolchain/IDE”字段中,选择“ SW4STM32”条目。 将所有其他字段保留为默认值。 现在切换到Code Generator选项卡,然后选择如下图所示的选项。单击OK按钮。 现在,我们准备为Nucleo生成C初始化代码。 转到项目-》生成代码菜单。 CubeMX可能会要求您为您的Nucleo下载最新版本的STCube HAL框架(例如,如果您有Nucleo-F401RE,它将要求您下载STCube-F4 HAL)。 如果是这样,请单击“是”按钮,然后等待完成。 一段时间后,您将在〜/ STM32Toolchain / cubemx-out / 《project-name》目录中找到C代码。 CubeMX下载的CubeHAL是官方CubeHAL的稍有不同的版本,您可以从ST网站下载。 它经过修改后可以由CubeMX处理,并且包含模板源文件⁹,这些文件会根据MCU配置使用CubeMX生成的自定义代码进行更新。 这些大小的软件包会自动在UNIX之类的系统上的〜/ STM32Cube / Repository文件夹中以及Windows的C: Documents and Settings 《USER-ID》 STM32Cube Repositoryfolder中下载。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1848浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
610浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
504浏览 3评论
508浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
489浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:39 , Processed in 0.467602 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号