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 ...
随机推荐
- 1_translation_1
It is always difficult to start describing a programming language because little details do not make ...
- weui复选框无法传值
//原来的反了 function changeState (ele) { if(ele.checked){ ele.setAttribute('checked','checked') console. ...
- ALV编辑数据后未更新到内表
在调用 ‘I_CALLBACK_USER_COMMAND’的时候定义 DATA: GR_ALV TYPE REF TO CL_GUI_ALV_GRID. "alv数据更改后更新到内表 CAL ...
- gym 101982 B题 Coprime Integers
题目链接:https://codeforces.com/gym/101982/attachments 贴一张图吧: 题目意思就是给出四个数字,a,b,c,d,分别代表两个区间[a,b],[c,d],从 ...
- 平板电脑与火狐浏览器下载excel中文文件名乱码
fileName = new String(fileName.getBytes("utf-8"), "iso8859-1");//兼容火狐.ie.平板 resp ...
- HashTable和HashMap的区别详解(转)
一.HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. HashMap是非线程安全的, ...
- 传递参数:java代码中形参的改变有没有影响实参?
实参:可以是常量.变量.表达式.函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参. 因此应预先用赋值,输入等办法使实参获得确定值. 形参:全称为“形 ...
- 关于servelt的相关介绍
1.@WebServlet注解的作用 在Servlet 3.0中,使用@WebServlet注解可实现servlet和url的映射,它告知容器哪些Servlet会提供服务以及额外信息,其作用相当于之前 ...
- supervisor学习
概念 supervisord 服务端 启动supervisor程序自身,启动supervisor管理的子进程,响应supervisorctl的请求,重启闪退或异常退出的子进程,把子进程的stderr或 ...
- MVC4 decimal 精度
MVC默认为小数点 后2位 更改设置 在我们现在的MovieDBContext类中重载OnModelCreating方法,代码如下所示.public class MovieDBContext : Db ...