STM32CUBEMX 生成STM32H7项目的几个问题

本文介绍了在使用STM32开发过程中遇到的两个常见问题及其解决方案:1. 编译时出现Nosectionmatchesselector错误,解决方法是添加对应的启动文件;2. Keil MDK编译速度慢,提供两种加快编译速度的方法,包括禁用某些功能和切换到V6编译器。注意,V6编译器可能不兼容旧工程。

1. 打开时,出现loading pdsc对话框

在这里插入图片描述
解决办法:不用管,对项目没有影响

2.编译出现报错No section matches selector - no section to be FIRST/LAST。

在这里插入图片描述
解决方法:
右键Drivers/CMSIS文件夹,选择添加已有文件,定位到对应器件的启动文件。
文件夹比较深:C:\Users\Administrator\STM32Cube\Repository\STM32Cube_FW_F0_V1.11.0\Drivers\CMSIS\Device\ST\STM32F0xx\Source\Templates\arm\startup_stm32f030x6.s
如果是其他单片机,可以选择相应的文件。

3. Keil MDK 编译速度太慢,加快编译速度

解决办法1:

如图所示,取消勾选项。
在这里插入图片描述

注:取消之后,就无法使用keil进行函数定义的查看了。可借助source insight工具查看代码。

解决办法2(不成熟)

MDK编译的速度实在太慢,一次完全编译往往要耗费几分钟的时间,作为开发人员,这个时间简直不能忍受。

其实,这个时间是可以加快的,在Options for Target设置中,Target子页,有个选项改一下就好了
在这里插入图片描述

选择第2项,使用V6编译器,也可以用下面的V6.xx版本,实测没有区别。

再编译,可以发现编译速度大幅加快,以我的项目为例,从默认V5编译器所需3分钟左右,可以加快到15秒以内,速度提升10倍。

这简直就是936烙铁和T12烙铁的区别,快到飞起。

敲黑板:V5编译OK的工程,V6有可能编译不过去,就算能过,也不知道会不会出莫名其妙的问题,建议从头开始一个项目的时候使用这个方式。

### STM32CubeH7 Documentation and Download Resources STM32CubeH7STMicroelectronics 提供的一套完整的开发工具和软件库,旨在简化基于 STM32H7 系列微控制器的应用程序开发。以下是与 STM32CubeH7 相关的文档和下载资源的详细介绍: #### 1. **STM32CubeMX 工具** STM32CubeMX 是一个图形化配置工具,用于初始化 STM32 微控制器的外设、时钟树和引脚分配。对于 STM32H7 系列,STM32CubeMX 提供了以下功能: - 自动生成初始化代码。 - 支持硬件抽象层(HAL)和低层(LL)驱动程序的选择。 - 集成 STM32Cube.AI 功能,用于将神经网络模型部署到 STM32 微控制器上[^2]。 用户可以从以下链接下载 STM32CubeMX 工具: - [STM32CubeMX 下载页面](https://www.st.com/en/development-tools/stm32cubemx.html) #### 2. **STM32CubeFirmwarePackage** STM32CubeFirmwarePackage 包含了 STM32H7 系列的所有 HAL 和 LL 驱动程序,以及示例项目。这些资源可以帮助开发者快速启动应用程序开发。相关资源可以通过以下链接获取: - [STM32CubeH7 Firmware Package 下载页面](https://www.st.com/content/st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32cube-mcu-mpu-packages/stm32cubeh7.html) #### 3. **STM32CubeIDE** STM32CubeIDE 是 STMicroelectronics 提供的集成开发环境(IDE),支持 STM32 系列微控制器的开发、编译和调试。它内置了对 STM32H7 的全面支持,并且可以与 STM32CubeMX 配合使用以生成项目框架。下载地址如下: - [STM32CubeIDE 下载页面](https://www.st.com/en/development-tools/stm32cubeide.html) #### 4. **参考手册和数据表** STMicroelectronics 官方提供了详细的参考手册和数据表,描述了 STM32H7 系列微控制器的架构、外设和寄存器配置。这些文档是深入理解硬件特性的关键资源: - [STM32H7 参考手册](https://www.st.com/resource/en/reference_manual/dm00314099-stm32h742-stm32h743753-and-stm32h750-value-line-advanced-armbased-32bit-mcus-stmicroelectronics.pdf) - [STM32H7 数据表](https://www.st.com/resource/en/datasheet/stm32h743vi.pdf) #### 5. **应用笔记和技术文档** STMicroelectronics 还提供了大量的应用笔记和技术文档,涵盖从电源管理到实时操作系统的各种主题。这些文档可以通过以下链接访问: - [STM32 技术文档库](https://www.st.com/en/embedded-software/stm32-software.html) #### 示例代码 以下是一个简单的 STM32H7 GPIO 初始化代码示例,展示如何使用 HAL 库配置 GPIO 引脚为输出模式: ```c #include "stm32h7xx_hal.h" void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); // 切换 PA5 引脚状态 HAL_Delay(500); // 延时 500 毫秒 } } static void MX_GPIO_Init(void) { __HAL_RCC_GPIOA_CLK_ENABLE(); // 启用 GPIOA 时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_5; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值