error: #5: cannot open source input file “stm32f10x_lib.h“:
目录
- 一、问题概述
- 二、问题解决
- 三、stm32f10x_lib.h和stm32f10x.h
一、问题概述
一个旧程序使用了keil 4.10版本,需要统一到keil 5.17上。结果发现使用5.17编译报错:
提示缺少stm32f10x_lib.h文件,查看了下工程目录,确实没有这个文件。而且对这个头文件完全没印象。可是为什么在4.10版本就能编译呢?
二、问题解决
网上查了一下,不少人遇到这个问题,一种解决方法是为工程添加一个stm32f10x_lib.h文件。不过我测试了下,找了一个stm32f10x_lib.h加进去,结果又报另一个头文件缺失:
把这个头文件加进去,又继续报一个新头文件丢失,于是放弃这种方式。
从工程结构和代码风格上看,应该是参考了原子的程序。找到原子的代码看一下,终于找到了最合适的升级方法:
- 将程序内包含的stm32f10x_lib.h全部替换为stm32f10x.h
- 将sys.c文件也更新替换下
这时再编译,配置中断时的中断线均未定义:
需要将后缀IRQChannel
更改为IRQn
即可。
三、stm32f10x_lib.h和stm32f10x.h
查询了下两个文件的区别:
stm32f10x_lib.h是ST公司V2.0版本的库函数使用的头文件,stm32f10x.h是ST公司V3.5之后统一使用的头文件,去掉了lib几个字,代表了新的版本,这个版本规范了代码,不需要包含那么多的头文件了。(链接)
怪不得没有见过stm32f10x_lib.h这个头文件,我生君已老呀。刚学STM32的时候就是下载3.5版本标准库。
可以看下stm32f10x_lib.h文件,实际是通过宏定义包括不同的头文件,如:
#ifdef _NVIC#include "stm32f10x_nvic.h"
#endif /*_NVIC */
所以在刚开始报错的时候,手动为工程添加一个stm32f10x_lib.h文件,会继续报错找不到头文件。再看stm32f10x_nvic.h中则定义了中断线:
#define TIM1_CC_IRQChannel ((u8)0x1B) /* TIM1 Capture Compare Interrupt */
#define TIM2_IRQChannel ((u8)0x1C) /* TIM2 global Interrupt */
#define TIM3_IRQChannel ((u8)0x1D) /* TIM3 global Interrupt */
而stm32f10x.h文件中则是直接定义:
TIM1_CC_IRQn = 27, /*!< TIM1 Capture Compare Interrupt */TIM2_IRQn = 28, /*!< TIM2 global Interrupt */TIM3_IRQn = 29, /*!< TIM3 global Interrupt */
所以在升级工程时,就有了将后缀IRQChannel
更改为IRQn
的修改。
error: #5: cannot open source input file “stm32f10x_lib.h“:相关推荐
- error: #5: cannot open source input file core_cm3.h: No such file or directory
用Keil vision5编译时出现以下错误: D:\MDK\install\ARM\PACK\Keil\STM32F1xx_DFP\2.2.0\Device\Include\stm32f10x.h ...
- 02_Keil5报错 error: #5: cannot open source input file “XXX.h”: No such file or directory解决方法
Keil5 error: #5: cannot open source input file "led.h": No such file or directory 是找不到包含文 ...
- STM32开发 -- cannot open source input file absacc.h 解决方法
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/80831070 问题描述: 使用 keil MDK 5.24 代码里有包含头文 ...
- Keil错误 error: #5: cannot open source input file XXX / XXX.h:
在编译一些程序常常遇到不能打开的文件,一般这时都是路劲不对,尝试重新加载路劲一编译,问题依然存在,细心的人可能会发现,keil5 下添加路劲会,比如 ...\lwip-1.3.2\src\includ ...
- 移植RTT使用cubeMx配置后出现 cannot open source input file stm32f1xx_hal_exti.h: No such file or directory
问题原因: 因为官方的f1HAL库存在没有"stm32f1xx_hal_exti.h"文件, 解决办法: 从cubuMx生成的工程内部复制一个"stm32f1xx_hal ...
- 关于 cannot open source input file “ ... “ No such file or directory 相关报错解决方式
首先还是要看报错的信息内容.比如:" no source":Error: #5: cannot open source input file " ..\..\..\Uti ...
- linux pclint配置_64位系统下,执行pclint检查的问题: Unable to open include file 'stddef.h'...
工作中碰到的一个问题: 项目的编译原来是在32位linux系统上进行编译的,并且是通过wine运行pclint.exe来进行lint检查. 现在要把项目放到docker container中进行编译, ...
- Fatal Error[Pe1696]:cannot open source file “sys.h”
STM32的IAR工程报错: Fatal Error[Pe1696]: cannot open source file "sys.h" 解决方法: 将#include " ...
- fatal error C1083: Cannot open source file
在VS2008 VC++项目中,新建了一个cpp文件,然后在物理硬盘上手动删除了,就出现如下错误. 1>------ Build started: Project: test, Configu ...
最新文章
- java构造方法何时被调用_构造方法何时被调用
- 使用 Microsoft .NET Framework 精简版中的 MessageWindow 类
- Java JNI简单实现
- 河南职称计算机啥时间考试,河南省2020年高级职称考试时间与具体安排
- java log4j 配置_Java:log4j与log4j.properties的配置说明
- web Worker简介、web Worker报错分析、作用
- MONGODB 与sql聚合操作对应图
- Bootstrap3 的新特性
- 一个项目有两个pom_Python Selenium设计模式之POM设计模式
- AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237
- c++ primer plus 之函数及函数指针
- 我入门的小程序,居然已经用户过万(上)
- 华为云k8s环境部署应用
- 三本郑大计算机考研,三本跨专业考研985,初试排名第一,结果竟被导师拒绝!寒心呀!...
- python分组求和法_python – 如何将groupby值的总和除以另一个值的count
- 关于道路标志牌的标记和数字标记
- Bean 的生命周期
- 第四章 字体和格式相关
- 第四回:matplotlib文字图例尽眉目
- G1.sniper Z97主板不能进入BIOS