【STM32】Keil5在编译过程中出现.cannot open source input file “STM32F1Xx.h“: No such file or directory的问题

文章讲述了在新建工程中遇到STM32F10x.h头文件缺失的编译错误,解决方案是通过点击魔术手工具并重新配置头文件包含路径。

问题描述

新建工程完成。居然"stm32f10x.h"报错,编译提示缺少stm32f10x.h包

编译报错cannot open source input file “STM32F1Xx.h“: No such file or directory

解决

1、点击魔术手

2、重新配置头文件包含路径

### 解决编译错误 `cannot open source input file "stm32f10x_conf.h": No such file or directory` 在使用 Keil 编译 STM32 项目时,如果遇到如下错误: ``` error: #5: cannot open source input file "stm32f10x_conf.h": No such file or directory ``` 这表明编译器无法找到所需的头文件 `stm32f10x_conf.h`。该文件通常用于配置 STM32 标准外设库(Standard Peripheral Library),其缺失或路径配置错误会导致编译失败。以下是几种常见的解决方法。 --- ### 方法一:确认头文件是否存在并正确添加路径 1. **检查文件是否存在** 确认项目目录或 STM32 标准库目录中确实存在 `stm32f10x_conf.h` 文件。如果没有,请从其他正常运行的 STM32F10x 工程中复制该文件,或从官方库中获取[^2]。 2. **添加头文件搜索路径** 在 Keil 中点击 **Options for Target(魔术棒)**,进入 **C/C++** 选项卡,点击 **Include Paths**,将包含 `stm32f10x_conf.h` 的目录添加到头文件搜索路径中。这样编译器就能正确识别该头文件的位置[^2]。 --- ### 方法二:检查并更新标准外设库 1. **版本兼容性问题** 如果工程是使用 Keil4 创建的,而在 Keil5 中打开,可能会出现头文件名不一致的问题,例如 `stm32f10x_lib.h` 被弃用。此时需要将适用于 Keil5STM32F10x 标准外设库复制到工程目录中,并更新引用路径[^5]。 2. **手动添加标准库文件** 将标准外设库中的 `stm32f10x_conf.h`、`stm32f10x.h` 等文件添加到工程目录中,并在魔术棒的 **C/C++** 设置中更新头文件路径,确保编译器能正确识别这些文件。 --- ### 方法三:检查运行时环境配置 1. **启用正确的运行时环境** 在 Keil 中点击 **Manage Run-Time Environment**,确保选中了与目标芯片匹配的 CMSIS 和 Device 核心支持,尤其是启动文件(Startup)部分。未正确配置运行时环境可能导致编译器无法识别系统头文件[^4]。 2. **检查启动文件是否被正确加载** 如果未加载 STM32F10x 的汇编启动文件(如 `startup_stm32f10x_xx.s`),也可能导致头文件路径解析失败。确保在 **Manage Run-Time Environment** 中启用了正确的启动代码。 --- ### 方法四:检查全局宏定义配置 1. **定义必要的宏** 在 **Options for Target → C/C++ → Define** 中添加以下宏定义,确保标准外设库被正确启用: ``` STM32F10X_MD, USE_STDPERIPH_DRIVER ``` 这些宏定义用于启用 STM32F1 系列芯片的中等密度设备支持,并加载标准外设库驱动[^2]。 --- ### 方法五:重新创建工程或使用模板工程 1. **基于模板创建新工程** 如果以上方法均无效,可以尝试使用 Keil 提供的 STM32F1xx 工程模板新建一个工程,并将原工程的源文件复制到新工程中。确保新工程中已正确配置头文件路径和运行时环境[^4]。 2. **移植标准库文件** 将一个正常运行的 STM32F10x 工程中的标准库文件(包括 `Libraries` 文件夹)打包复制到当前工程目录下,并在魔术棒中更新头文件路径[^5]。 --- ### 示例代码:确保头文件正确包含 ```c #include "stm32f10x.h" #include "stm32f10x_conf.h" ``` 上述代码应出现在主程序文件(如 `main.c`)中,确保头文件路径配置正确后,编译器应能顺利找到并包含这些文件。 ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ycjunhua

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值