stm32f10x_it.c、stm32f10x_it.h和stm32f10x_conf.h文件作用

如上图,在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文件作用的更多相关文章
- 关于stm32f10x_conf.h文件
简介 stm32f10x_conf.h文件有2个作用:①提供对assert_param运行时参数检查宏函数的定义.②将开发者用到的标准外设头文件集中在这个文件里面,而stm32f10x_conf.h又 ...
- 致命错误: zlib.h:没有那个文件或目录
下面这个错误是因为zlib包没有安装,安装后问题即可解决.但有一点请注意安装命令是:sudo apt-get install zlib1g-dev,而非sudo apt-get install zli ...
- 单片机中用c编程时头文件reg51.h及reg52.h解析
单片机中用c编程时头文件reg51.h及reg52.h解析 我们在用c语言编程是往往第一行就是reg51.h或者其他的自定义头文件,我们怎么样来理解呢? 1)“文件包含”处理. 程序的第一行是一个“文 ...
- lib/sqlalchemy/cextension/processors.c:10:20: 致命错误: Python.h:没有那个文件或目录
本文地址:http://www.cnblogs.com/yhLinux/p/4063444.html $ sudo easy_install sqlalchemy [sudo] password fo ...
- 致命错误: Python.h:没有那个文件或目录
In file included from greenlet.c:5:0: greenlet.h:8:20: 致命错误: Python.h:没有那个文件或目录 编译中断. error: Setup s ...
- busybox 致命错误: curses.h:没有那个文件或文件夹
$:~/dd/busybox-1.19.3$ make menuconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/basic/split- ...
- 错误: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 ...
- [转]ubuntu bits/predefs.h:没有那个文件或目录
[转]ubuntu bits/predefs.h:没有那个文件或目录 (2012-04-28 10:09:38) 转载▼ 标签: it 分类: Linux In file included from ...
- 关于错误 openssl/ssl.h:没有那个文件或目录的解决办法
原文链接:https://blog.csdn.net/kulala082/article/details/68484314 首先得安装openssl:sudo apt-get install open ...
随机推荐
- ubuntu 快捷键
gnome-terminal and xfce4-terminal: Ctrl+Shift+c (copy) and Ctrl+Shift+v (paste) xterm: Ctrl+Insert ( ...
- JS高级总结
网址:https://www.cnblogs.com/signheart/p/d6c229a5a758ee1dc21ad5ca2042ab8f.html 通常,通过 JavaScript,您需要操作 ...
- java表达式中运算符优先级
运算符优先级:运算符*和/(以及%)的优先级高于+和-(优先级越高,越早运算) 在逻辑运算符中,!拥有最高优先级,之后是&&,接下来是||. 一般来说,相同优先级的运算符的运算顺序是从 ...
- 获取BDC 消息文本的2种方式
第一种 LOOP AT MESSTAB. MOVE MESSTAB-MSGNR TO MSGNO. CALL FUNCTION 'WRITE_MESSAGE' EXPORTING MSGID = ME ...
- 从零开始学spring cloud(六) -------- Ribbon
一.Ribbon介绍 Ribbon就是客户端侧负责均衡实现的一种方式,那么Ribbon是什么呢? Ribbon是Netflix发布的云中间层服务开源项目,其主要功能是提供客户端侧负载均衡算法.Ribb ...
- 这是一个新的开始at this very monment
简单的介绍下此时自己的情况,和对近几年所做的事做一个总结,并展望下自己的未来和对自己的期待.我会将我的博客分成两种,一个是我的学习笔记,另一个是我的生活记录. 2018年六月底我毕业于一个普通的二本, ...
- project6 PIT游戏
[理解知识] 说了半天,得在有source的地方stop. 之前没参与,现在marker从某渠道中进来了.就记录. 每个过程表格中记录的渠道都是进入的渠道. 记录的是没见过marker的.进入的渠道. ...
- js 加减乘除以及四舍五入 新写法
1 四舍五入 eg: (1.23).round() = 1.2 (1.2456).round(3) = 1.246 Number.prototype.round = function (count) ...
- MVC开发T4代码生成之一----文本模板基础
T4文本模板 T4全写为Text Template Transformation Toolkit,是一种编程辅助工具,用来使程序代码自(懒)动(猿)生(福)成(利)的工具.MVC开发中大量使用了T4模 ...
- 使用JFlex生成词法分析器 1:安装配置
环境:Windows 10 STEP 1: 下载 JFlex 文件,我选择的是 jflex-1.7.0.zip.下载完成后解压到想安装的位置. 文件结构如下(假设解压目录为 C:\): C:\jfle ...