历史上的今天
今天是:2024年10月06日(星期日)
2018年10月06日 | stm32的库文件的用法解释
2018-10-06 来源:eefocus
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固件库文件描述
史海拾趣
|
目录: 第一篇 电路理论基础 第一章 电路的基本概念和基本定律 第二章 电阻电路的分析方法 第三章 正弦交流电路 第四章 非正弦周期电流电路 第五章 电路暂态过程分析 第二篇 模拟电子技术基础 第六章 半导体分立器件 第七章 单管交流放大 ...… 查看全部问答> |
|
问题就下代码注释的,请哪位有大哥帮我下,谢谢了 ACCESSFILE_DATA是我自己定义的结构,如下: typedef struct _ACCESSFILE_DATA { BOOL bResult; DWORD dwLastError; DWORD dwLen; char szData[1024]; } ACCESSFILE_DATA; 下面是Uplo ...… 查看全部问答> |
|
在南京万历电子的EK-STM32F开发板上调试程序,使用I2C1读写外部24C02芯片,DEMO程序使用了ST的库STM32F10xFWLibFWLibexamplesI2CExample5,愿为读写24C08的程序,发现I2C读写在下列情况下无法实现:主频设置在40M以下时,I2C无法正确读写, ...… 查看全部问答> |
|
做课题需要一块DM642的板子,主要在DM642平台上研究视频的相关算法. 一路视频输入,一路复合视频信号输出,一个网口输出,功能要求不复杂,能搭建平台即可。 求购~~~… 查看全部问答> |




