新建keil工程每一个文件夹的作用

问:

头文件stm32f10x_sdio.c的作用?

有时候在添加路径的时候为什么不添加src?有些工程里就添加了

新建工程的每一个文件夹的作用
core, obj,STM32_FWLIB(这个在添加group的时候为什么名字发生了变化!),SYSTEM,USER。。。。

define USE_STDPERIPH_DRIVER,STM32F10X_HD这两个,大多数的工程都没添加,为什么?



答:

stm32f10x_sdio.c是stm32 sdio部分的驱动.
有的添加,有的不添加,是因为有的要用到sdio,有的不要用到,如果不要用到sdio,你也添加,那就是资源浪费了,占flash呢...
不同文件夹,放不同的文件,条理清晰,比如SYSTEM,放系统相关的.c文件,HARDWARE放各种硬件驱动.c文件.MALLOC放内存管理.c文件.PICTURE,放图片编解码.c文件,obj存放编译过程的一些中间文件(各种编译产生的文件,以及hex文件等),FWLIB(或STM32F10x_FWLib)存放STM32各种外设的驱动代码(即所谓的库函数)....
重点说说STM32F10x_FWLib,所谓的库函数,其实就是指这个里面的代码.这个文件夹里面还有2个子文件夹:inc和src
顾名思义,inc是指头文件,src是指源码,这样头文件和源码分别存放在这两个文件夹里面.inc我们在新建工程的时候,必须添加到头文件包含路径去,让mdk可以找到这些头文件.
然后src里面的.c文件,则是stm32各种外设的驱动,我们根据自己的需要进行添加即可,没必要全添加,前面说过,一方面可以省空间,另外一方面,可以大大提高编译速度,你不想编译一次就可以看一部电影吧?


标准的工程新建办法,是要添加" USE_STDPERIPH_DRIVER,STM32F10X_HD的.
USE_STDPERIPH_DRIVER,是告诉编译器,我们需要使用标准库了(实际上是.c/.h文件里面的一个宏,通过这个宏决定是不是要用某些资源,比如库函数的使用)
STM32F10X_HD,则是表示我们使用的芯片是大容量的stm32,从而告诉那些.c/.h文件,使用相关代码.

另外,很重要的一个文件,常被初学者忽略,那就是:stm32f10x_conf.h
很多库函数相关的.h文件,是在这个里面被包含进来的.
所以你很多时候,只看到我们代码包含了stm32f10x.h了,事实上,由于我们定义了:USE_STDPERIPH_DRIVER,所以在stm32f10x.h里面,会包含:stm32f10x_conf.h
而stm32f10x_conf.h会包含各种外设的.h文件,如下:
#ifndef __STM32F10x_CONF_H
#define __STM32F10x_CONF_H

/* Includes ------------------------------------------------------------------*/
/* Uncomment/Comment the line below to enable/disable peripheral header file inclusion */
//#include "stm32f10x_adc.h"
//#include "stm32f10x_bkp.h"
//#include "stm32f10x_can.h"
//#include "stm32f10x_cec.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_fsmc.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_sdio.h"
//#include "stm32f10x_spi.h"
//#include "stm32f10x_tim.h"
#include "stm32f10x_usart.h"
//#include "stm32f10x_wwdg.h"
..............


这样,我们就把这些.h文件添加到了你的工程里面,上面的代码,我们很多.h文件都是被屏蔽了,所以如果你在使用的时候,遇到提示对应外设的定义没有而出错的时候,不妨看看你的stm32f10x_conf.h里面,有没有注释掉对应外设的头文件.




引用链接:http://www.openedv.com/posts/list/26077.htm#153497




你可能感兴趣的:(新建keil工程每一个文件夹的作用)