如上图,在STM32的Keil工程文件(Project)中一般都包含stm32f10x_it.c、stm32f10x_it.h和stm32f10x_conf.h这三个文件,但是在ST官方提供的标准库“STM32F10x_StdPeriph_Lib_V3.5.0”中又找不到这三个文件,它们是做什么的,或起什么作用呢?

一、stm32f10x_conf.h文件

如上图,打开stm32f10x_conf.h文件后发现其包含了stm32f10x芯片各外设的头文件。也就是说在使用stm32f10x芯片的某一外设时,不仅要把这个外设的驱动文件添加到工程,还要把改外设的头文件“包含到”stm32f10x_conf.h中。

如果不配置好stm32f10x_conf.h,当使用外设如ADC TIM USART时,就无法编译通过。因为没有在stm32f10x_conf.h里加入相应外设头文件,根本不能调用固件外设库,即使你把固件库文件加入了工程里。当然,你可以在main.c里面全部加入需要的头文件来解决,不过我觉得配置stm32f10x_conf.h简单方便,有组织!

二、stm32f10x_it.c和stm32f10x_it.h

stm32f10x_it.c和stm32f10x_it.h是存放STM32工程中所有中断函数的模板文件。在STM32工程文件中,如果你不用中断,可以把这两个文件都去掉。当然,你也可以把中断函数放在其他的“xxx.c文件”中,这时stm32f10x_it.c和stm32f10x_it.h也可以去掉。之所以很多STM32工程中都包含这两个文件,是为了以后建工程方便,一般教程类的文件都包含这两个文件。

注意,中断函数的名称都是固定的,不能自己随便编。因为编译的时候要将对应的服务程序放在固定的中断入口地址下,随便起的名字编译器不可能会认识,并且每一种不同型号的片子所对应的服务程序名不同,比如中容量的片子只支持到EXTI4_IRQHandler,EXTI5_IRQHandler好像就没有了。所以,编写中断函数程序时,最好在stm32f10x_it.c和stm32f10x_it.h模板文件下编写,即使不在stm32f10x_it.c和stm32f10x_it.h模板文件下编写(在其他的“xxx.c文件”中编写),也要参考stm32f10x_it.c和stm32f10x_it.h文件。

注意区分stm32f10x_exti.c和stm32f10x_exti.h文件。stm32f10x_exti.c和stm32f10x_exti.h文件是外设“外部中断/事件控制器(EXTI)” 的驱动文件和头文件。stm32f10x_it.c和stm32f10x_it.h是STM32工程文件中中断函数的“集合”。

stm32f10x_it.c、stm32f10x_it.h和stm32f10x_conf.h文件作用的更多相关文章

  1. 关于stm32f10x_conf.h文件

    简介 stm32f10x_conf.h文件有2个作用:①提供对assert_param运行时参数检查宏函数的定义.②将开发者用到的标准外设头文件集中在这个文件里面,而stm32f10x_conf.h又 ...

  2. 致命错误: zlib.h:没有那个文件或目录

    下面这个错误是因为zlib包没有安装,安装后问题即可解决.但有一点请注意安装命令是:sudo apt-get install zlib1g-dev,而非sudo apt-get install zli ...

  3. 单片机中用c编程时头文件reg51.h及reg52.h解析

    单片机中用c编程时头文件reg51.h及reg52.h解析 我们在用c语言编程是往往第一行就是reg51.h或者其他的自定义头文件,我们怎么样来理解呢? 1)“文件包含”处理. 程序的第一行是一个“文 ...

  4. lib/sqlalchemy/cextension/processors.c:10:20: 致命错误: Python.h:没有那个文件或目录

    本文地址:http://www.cnblogs.com/yhLinux/p/4063444.html $ sudo easy_install sqlalchemy [sudo] password fo ...

  5. 致命错误: Python.h:没有那个文件或目录

    In file included from greenlet.c:5:0: greenlet.h:8:20: 致命错误: Python.h:没有那个文件或目录 编译中断. error: Setup s ...

  6. busybox 致命错误: curses.h:没有那个文件或文件夹

    $:~/dd/busybox-1.19.3$ make menuconfig   HOSTCC  scripts/basic/fixdep   HOSTCC  scripts/basic/split- ...

  7. 错误:readline/readline.h:没有那个文件或目录解决方法

    curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz tar zxf lua-5.3.0.tar.gz cd lua-5.3.0 make linux ...

  8. [转]ubuntu bits/predefs.h:没有那个文件或目录

    [转]ubuntu bits/predefs.h:没有那个文件或目录 (2012-04-28 10:09:38) 转载▼ 标签: it 分类: Linux In file included from ...

  9. 关于错误 openssl/ssl.h:没有那个文件或目录的解决办法

    原文链接:https://blog.csdn.net/kulala082/article/details/68484314 首先得安装openssl:sudo apt-get install open ...

随机推荐

  1. event 事件2

    4.事件类型 “DOM3级事件”规定了一下几类事件: 1)UI事件(用户界面事件),当用户与页面元素交互时触发 2)焦点事件,当元素获得或失去焦点时触发 3)鼠标事件,当用户通过鼠标在页面上执行操作时 ...

  2. 简单的页面互点Javascript代码

    简单的页面互点Javascript代码,可以适用于前端$(function(){ $('.ip_b_con_item li,.pro_index_list li').mouseover(functio ...

  3. python 的xlwt模块

    一.安装 ♦ python官网下载https://pypi.python.org/pypi/xlwt模块安装. ♦或者在cmd窗口  pip install  xlrd 二.使用 1.导入模块 imp ...

  4. java中LIst转换成Json

    List转换成json串 public String getNameListByID(Long Id) { List<Name> nameLists= nameService.select ...

  5. java_25 FileReader类和FileWriter类

    1.FileWriter 1.1FileWriter 用于写入字符流.要写入原始字节流,请考虑使用 FileOutputStream. public class Demo { public stati ...

  6. code first , Migration

    文章引用至: https://www.cnblogs.com/panchunting/p/entity-framework-code-first-migrations.html 随着业务的增加, 之前 ...

  7. golang 安装tensorflow

    TF_TYPE="cpu" # Change to "gpu" for GPU support  //设置环境变量   TARGET_DIRECTORY='/u ...

  8. VS2008打上SP1的补丁后安装了silverlight后出现未将对象引用设置到对象实例的解决办法

    新建silverlight项目失败,提示 未将对象设置到实例 的解决办法: 1.打开 visual studio 命令提示 输入一下命令:2.devenv /resetskippkgs ,这条命令会启 ...

  9. nio编程

    NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector.传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer(缓冲区)进行操作,数据总是从 ...

  10. 20175234 2018-2019-2 《Java程序设计》第八周学习总结

    目录 20175234 2018-2019-2 <Java程序设计>第八周学习总结 教材学习内容总结 15.1泛型 15.2链表 15.3堆栈 15.4散列映射 15.5树集 15.6树映 ...