当前位置:   article > 正文

【STM32Cube开发记录】3-STM32CubeMX的使用_cubeide生成代码 keil打开

cubeide生成代码 keil打开

STM32CubeMX可以为我们的MCU进行资源配置,用于生成配置 ST HAL 所需的代码。它可以独立安装,我们的STM32CubeIDE已经包含了这个。需要注意的是,STM32CubeMX生成的代码,可以用Keil打开,但是STM32CubeIDE生成的工程代码,Keil好像不能使用。第一节中已经使用过配置LED,现在详细讲解下相关的内容。

 1. 目标选择

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

在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,允许通过这些示例来进行筛选。

  • 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文件,会自动弹出是否生成代码的选项,另外一种是点击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从网上下载。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/637434
推荐阅读
相关标签
  

闽ICP备14008679号