如上图,在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. 知识点---前端处理支持emoji表情

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. MySql中order by和union all同时使用

    () UNION ALL () 两边的语句加上括号就可以了

  3. pl/sql developer 问题总结

    问题1,出现NLS_LANG和字符集(Character set)问题 安装完PL/SQL后打开,遇到如图问题. 原因:这是因为系统没有设置NLS_LANG系统变量. 解决方法:有两种方式查看. 1. ...

  4. vue(一)vue-cli安装

    第一步:我们首先要全局安装vue官方提供的脚手架工具:vue-cli $ npm install vue-cli -g 第二步:然后我们就可以创建自己的vue项目了, $ vue init webpa ...

  5. ToastUtils 工具类

    package com.example.grenaderose.redthunder.utils; import android.content.Context; import android.os. ...

  6. Ubuntu iso下载地址(14、16、18)

    Ubuntu镜像,快速下载 ubuntu 14.04: http://mirrors.aliyun.com/ubuntu-releases/14.04/ubuntu 16.04: http://mir ...

  7. Educational Codeforces Round 35 (Rated for Div. 2)

    Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...

  8. Python开发【第十一篇】:Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 1.原生模块pymsql. 2.ORM框架SQLAchemy. pymsql pymsql是Python中操作MySQL的模块,其使用方法和MyS ...

  9. Codeforces Round #553 (Div. 2) D题

    题目网址:http://codeforces.com/contest/1151/problem/D 题目大意:给出n组数对,(ai , bi),调整这n组数对的位置,最小化 ∑(ai*( i -1)+ ...

  10. UILabel设置富文本后不显示省略号

    先描述一下问题,项目中用到了UILabel去显示一段富文本文字,超过label显示区域部分,省略号处理. 但是当设置好 attributedText 给label之后,显示出的效果是文字被切割了,并没 ...