【STM32Cube开发记录】3-STM32CubeMX配置STM32的基本使用

STM32CubeMX可以为我们的MCU进行资源配置,用于生成配置 ST HAL 所需的代码。它可以独立安装,我们的STM32CubeIDE已经包含了这个。需要注意的是,STM32CubeMX生成的代码,可以用Keil打开,但是STM32CubeIDE生成的工程代码,Keil好像不能使用。

简要过程是,选择你的MCU型号 -> 配置引脚 -> 配置时钟 -> 生成代码。

第一节中已经使用过配置LED,现在详细讲解下相关的内容。

 1. 目标选择

这里主要是选择我们使用的是什么MCU,界面有四个tab,提供不同的维度去选择目标板,一般简单的使用用第一个就可以了,后三个可以暂时不管。

1.1 选择MCU/MPU(MCU/MPU Selector)

允许用户从整个STM32产品系列中选择一个微控制器。

在PROUTC INFO里

  •  Segment: 按高性能,主流,低功耗等特性分类。

  • Series :按STM是F0,F1,F2等系列分类

  •  Line:进一步选择是那个子系列

  • 市场状态

  • 价格

  • 封装类型:LQFP, WLCSP等等

  • Core:所选Cortex-M内核(M0,M3等)

后面是一些片内资源/外设,内存大小,定时器个数等等

1.2 开发板选择(Board Selector)

允许选择官方ST公司的开发板。在PROUTC INFO里

  • Type:属于什么系列的电路板(Nucleo-64、评估板等)

  • Suppiler:供应商 ST

  • MCU/MPU Series:MCU属于的系列(F0,F4等)

  • 市场状态和价格

1.3 示例选择(Example Selector)

多年来,ST为STM32系列开发了数千个示例,以展示如何使用单个外设或扩展中间件。允许用户在5000多个示例中进行筛选。

  • Keyword:给定限定词进行筛选

  • Vendor:供应商 ST

  • Board:开发板

  • MCU/MPU:目标MCU

  • Project Type:项目类型,应用程序/演示/示例项目

  • Based on driver:CubeHAL,CubeHAL-LL或两者混合。

  • Middleware:给定中间件库使用情况的示例,比如FreeRTOS

  • MCU/MPU Library:对给定外设进行编程的示例(ADC,CAN等)

Board Support Package Library:使用给定的BSP库的示例(EEPROM,LCD等额外外设)

1.4 交叉选择器(Cross Selector)

如果你一直使用其它非STM的MCU,近期想移植到STM32上,可以利用交叉选择器、也可以给STM32 MCU找替代品。

2. MCU和中间件配置

选择完MCU后,会生成一个.ioc文件。这个是CUBEMX的主要文件

2.1 引脚视图和配置(Pinout View & Configuration)

可以将引脚配置想要的功能,GPIO,USART,CAN,TIMER等等。
未启用的外设图标是橙色的,你配置了但是关联的外设未启用,不会生成相关的代码,浅黄色是电源引脚,无法更改。BOOT 和 RESET 引脚以卡其色着色,其配置无法更改。

 CubeMX还提供了可以为每个单独的MCU信号定义自定义标签。通过右键单击已启用的 PIN,可以选择输入用户标签。LABEL 部分将在 main.h 文件中生成相应的宏。

2.2 时钟配置视图(Clock Configuration View)

在这里可以进行时钟的配置。可以设置内核的时钟和外设的时钟。如果需要设置HSE或者LSE,可以看到现在是置灰的状态,需要在“引脚视图和配置(Pinout View & Configuration)”中的System Core->RCC部分开启。先了解到这里,后面详细介绍。

*可以修改PLL实现STM32的超频,但是不建议这么使用,可能会损坏MCU而且可能会碰到难想象的异常问题。

2.3 项目管理试视图(Project Manager)

  •  Project

这里可以配置工作区、工具链、源代码生成、堆栈大小和所用 HAL 库类型相关的项目范围配置。

  • Code Generator

这里配置CubeMX 代码生成相关的,比如将 HAL *.c/h 文件包含在项目中、如何保留模板文件结构等。

  • Advanced Settings

这里有更高级的项目选项,可以在 CubeHAL 和更优化的 Cube-LL 库之间进行选择。同时,可以选择不为某些外围设备或中间件组件生成代码,以便你可以添加自己的代码。

2.4 工具视图(Tools View)

可以使用功耗计算器PCC,在给定MCU型号,电池模型和用户定义的功率的情况下,可以提供平均功耗,电池寿命, 平均 DMIPS等参数估计。

3. 代码生成

在配置好我们的工程后,如何去生成代码?有两种方式,一种是保存.ioc文件(ctrl+s),会自动弹出是否生成代码的选项,另外一种是点击Project->Generate Code生成,会生成以下的代码结构

  • Binaries 

生成编译结束后产生的ELF文件。

  • Includes

头文件包含路径,如果有新建文件,记得添加头文件

  • Core

核心的文件夹,包含开发应用程序所需的所有文件。

1. main.h:引脚的标签的宏声明就是放在这里的。

2. stm32XXxx_hal_conf.h:使用多个宏定义将 HAL 配置转换为 C 代码的文件。这些宏用于“指示”HAL有关已启用MCU功能的信息。

3. stm32XXxx_it.c:存放中断服务(ISR)的地方。

4. startup_stmXXxx.s:启动文件

  • Drivers

包含 CMSIS-CORE 包和 CubeHAL 库。

  • Debug

此文件夹包含编译生成的所有中间文件,如映射文件, ELF 或其他二进制格式的最终二进制文件。可以安全删除,编译会生成。

  • STM32XXxx_FLASH.ld

这些是链接器脚本,定义了FLASH和RAM的大小。

4. STM32Cube包管理

STM32CubeIDE可以管理CubeHAL包和其他扩展包。在Help->Manage Embedded Software Packages可以打开设置。

可以从下面的From Local安装本地的包,或者From Url从网上下载。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值