1、我们需要加那些文件进来才能跑动一个程序:
首先我们要对库文件有一定的了解,其中STM32F10xR.LIB是封装好了的.C文件,它包括stm32f10x_conf.c stm32f10x_adc.c stm32f10x_gpio.c等等,要用这些C函数,直接包含头文件stm32f10x_conf.h stm32f10x_adc.h stm32f10x_gpio.h就行了,但是头文件也能用stm32f10x_lib.h直接包含就行了,所以我们看到的keil中只用添加GROUP中的SOURCE中的四个文件就行了
其中的stm32f10x_vector.s是启动文件,有的版本是startup_stm32f10x_hd.s,这个事根据版本和芯片的型号来定得名称,总之他的功能就是启动代码。其中stm32f10x_lib.h是在main.c中包含的,stm32f10x_it.c是中断的相关程序,暂时没用到。以上图片是没有编译的时候的,如果编译之后会见到.C文件下面会有很多的.H头文件
也可以在C文件上点击右键,隐藏这些.H头文件。
下面我们来看看,火牛开发板的程序都添加了那些东西进来用于跑通一个流水定的程序:
从这里看,有库文件LIB其中他只含有要用到的5个.C文件。在添加文件的过程中不用添加头文件,因为你添加了相应的C文件之后,头文件会在编译的之后自动包含进来,只要你将头文件放在正确的位置,现在说说如何添加正确的位置能让KEIL找到头文件,先看下图
在火牛的这个跑马灯的程序中要改变头文件的位置可以通过改变inc文件夹的位置,到时候找到这个位置就行了,按照上图的位置找到,并且重新编译一遍就能指向新的位置了。
如果想另外添加头文件新的位置时的话就用下图
归纳两点:a:首先就是添加启动文件,用户自己编写的.C文件,函数库中的C文件
b:然后就直接指定.h文件的位置,让编译器在编译的时候能找到他们就行了。
2、下面主要说说每个C文件的含义和每个头文件的含义:
a、首先是stm32f10x_map.h ,这个文件其实在新版本中改变了名字,现在的名字是stm32f10x.h,它stm32f10x.h则定义了启动设置,以及所有寄存器宏定义
b、core_cm3.h这个加进来可以先不管,初学者用不到他,他是内核的相关知识
c、stm32f10x_conf.h用于包含
#include "stm32f10x_adc.h"
#include "stm32f10x_bkp.h"
#include "stm32f10x_can.h"
#include "stm32f10x_crc.h"
#include "stm32f10x_dac.h"
#include "stm32f10x_dbgmcu.h"
#include "stm32f10x_dma.h"
#include "stm32f10x_exti.h"
#include "stm32f10x_flash.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_i2c.h"
#include "stm32f10x_iwdg.h"
#include "stm32f10x_pwr.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_rtc.h"
#include "stm32f10x_spi.h"
#include "stm32f10x_tim.h"
#include "stm32f10x_usart.h"
#include "stm32f10x_wwdg.h"
#include "misc.h"等等这些文件,以免在主函数中写太多包含的头文件不够简洁,然而在主函数main当中再用 stm32f10x.h来包含stm32f10x_conf.h,这样在主函数中直接include就相当于包含了以上的那么多的头文件,这个就相当于是传递的功能了。
d、stdint.h 定义了 int16_t 、 uint32_t 、 int64_t 等整型,在需要确定大小的整型时可以使用它们代替 short 、 unsigned long long 等
e、system_stm32f10x.h,微控制器专用系统文件
不得不承认火牛开发板配套的程序所加载的库文件确实是太乱了,很多库文件要自己去看其中的内容才能知道他的用法和意义
上一篇:stm32固件库文件描述
下一篇:STM32单片机按键消抖和FPGA按键消抖大全
推荐阅读最新更新时间:2024-03-16 16:15