目录

  • 一、问题概述
  • 二、问题解决
  • 三、stm32f10x_lib.h和stm32f10x.h

一、问题概述

一个旧程序使用了keil 4.10版本,需要统一到keil 5.17上。结果发现使用5.17编译报错:

提示缺少stm32f10x_lib.h文件,查看了下工程目录,确实没有这个文件。而且对这个头文件完全没印象。可是为什么在4.10版本就能编译呢?

二、问题解决

网上查了一下,不少人遇到这个问题,一种解决方法是为工程添加一个stm32f10x_lib.h文件。不过我测试了下,找了一个stm32f10x_lib.h加进去,结果又报另一个头文件缺失:

把这个头文件加进去,又继续报一个新头文件丢失,于是放弃这种方式。
从工程结构和代码风格上看,应该是参考了原子的程序。找到原子的代码看一下,终于找到了最合适的升级方法:

  1. 将程序内包含的stm32f10x_lib.h全部替换为stm32f10x.h
  2. 将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“:相关推荐

  1. 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 ...

  2. 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 是找不到包含文 ...

  3. STM32开发 -- cannot open source input file absacc.h 解决方法

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/80831070 问题描述: 使用 keil MDK 5.24 代码里有包含头文 ...

  4. Keil错误 error: #5: cannot open source input file XXX / XXX.h:

    在编译一些程序常常遇到不能打开的文件,一般这时都是路劲不对,尝试重新加载路劲一编译,问题依然存在,细心的人可能会发现,keil5 下添加路劲会,比如 ...\lwip-1.3.2\src\includ ...

  5. 移植RTT使用cubeMx配置后出现 cannot open source input file stm32f1xx_hal_exti.h: No such file or directory

    问题原因: 因为官方的f1HAL库存在没有"stm32f1xx_hal_exti.h"文件, 解决办法: 从cubuMx生成的工程内部复制一个"stm32f1xx_hal ...

  6. 关于 cannot open source input file “ ... “ No such file or directory 相关报错解决方式

    首先还是要看报错的信息内容.比如:" no source":Error: #5: cannot open source input file " ..\..\..\Uti ...

  7. linux pclint配置_64位系统下,执行pclint检查的问题: Unable to open include file 'stddef.h'...

    工作中碰到的一个问题: 项目的编译原来是在32位linux系统上进行编译的,并且是通过wine运行pclint.exe来进行lint检查. 现在要把项目放到docker container中进行编译, ...

  8. Fatal Error[Pe1696]:cannot open source file “sys.h”

    STM32的IAR工程报错: Fatal Error[Pe1696]: cannot open source file "sys.h" 解决方法: 将#include " ...

  9. fatal error C1083: Cannot open source file

    在VS2008  VC++项目中,新建了一个cpp文件,然后在物理硬盘上手动删除了,就出现如下错误. 1>------ Build started: Project: test, Configu ...

最新文章

  1. java构造方法何时被调用_构造方法何时被调用
  2. 使用 Microsoft .NET Framework 精简版中的 MessageWindow 类
  3. Java JNI简单实现
  4. 河南职称计算机啥时间考试,河南省2020年高级职称考试时间与具体安排
  5. java log4j 配置_Java:log4j与log4j.properties的配置说明
  6. web Worker简介、web Worker报错分析、作用
  7. MONGODB 与sql聚合操作对应图
  8. Bootstrap3 的新特性
  9. 一个项目有两个pom_Python Selenium设计模式之POM设计模式
  10. AndroidStudio_java.util.ConcurrentModificationException---Android原生开发工作笔记237
  11. c++ primer plus 之函数及函数指针
  12. 我入门的小程序,居然已经用户过万(上)
  13. 华为云k8s环境部署应用
  14. 三本郑大计算机考研,三本跨专业考研985,初试排名第一,结果竟被导师拒绝!寒心呀!...
  15. python分组求和法_python – 如何将groupby值的总和除以另一个值的count
  16. 关于道路标志牌的标记和数字标记
  17. Bean 的生命周期
  18. 第四章 字体和格式相关
  19. 第四回:matplotlib文字图例尽眉目
  20. G1.sniper Z97主板不能进入BIOS

热门文章

  1. c# 链接mongDB集群实战开发3
  2. shiro-cas------实现单点登出并自定义登出starter
  3. 国内Maven仓库--阿里云Aliyun仓库地址及设置
  4. abaqus生成adams柔性体_Abaqus和STAR-CCM+流固耦合
  5. R语言与非参数统计(核密度估计)
  6. 大数据的可视化:bigvis包的简单尝试
  7. 高中计算机学ppt吗,高中信息技术人工智能教学培训课件选修5ppt
  8. 安卓iccid_Android 获取双卡手机IMEI,IMSI,ICCID
  9. 前景检测算法(十一)--基于LBP纹理
  10. 人脸检测(六)--haar分类器代码理解