如上图,在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. docker学习-lnmp+redis之搭建mysql容器服务

    一. 前期准备工作,创建配置文件目录,log文件目录,数据库DATA和WEB站点目录[root@T1 ~]# mkdir -p /lnmp/conf/{mysql,nginx,php} /lnmp/l ...

  2. supervisorctl安装使用文档

    1.apt-get install supervisor下载或者pip install supervisor(因为supervisor是python写的)supervisor和python项目没有关系 ...

  3. mysql链接服务器,update报错

    select * from Openquery(MySQL, 'SELECT * FROM official.sys_hospital') 执行更新语句: ; 报错,错误信息: 链接服务器" ...

  4. PRD是什么

    产品需求文档(Product Requirement Document,PRD)的英文简称.是将商业需求文档(BRD)和市场需求文档(MRD)用更加专业的语言进行描述

  5. Bootstrap+PHP表单验证实例

    简单实用的Bootstrap+PHP表单验证实例,非常适合初学者及js不熟悉者,还有ajax远程验证 js验证表单 1 $(document).ready(function() { 2 $('#def ...

  6. python对mysql数据库的一些常用操作

    import pymysql class OperationDatabase(): def __init__(self,Ip,User,PassWd,DBname): self.ip=Ip self. ...

  7. linux 学习之路:ls命令使用

    1.命令格式: Ls 显示指定工作目录下的目录内容 语法:ls [-alrtAFR] [name...] 2.命令参数: 3.命令功能: 显示列出目前工作目录所含之文件及子目录 4.命令范例: 列出根 ...

  8. (转)Oracle定时执行计划任务

    Oracle定时执行计划任务 在日常工作中,往往有些事情是需要经常重复地做的,例如每天更新业务报表.每天从数据库中提取符合条件的数据.每天将客户关系管理系统中的数据分配给员工做数据库营销……因此我们就 ...

  9. Which Queue Pair type to use?

    Which Queue Pair type to use? Contents [hide] 1 Reliable Connected (RC) QP 2 Unreliable Connected (U ...

  10. 【MySQL】初识数据库及简单操作

    一.数据库概述 1.1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. ...