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

本文详细解析了STM32工程中的关键文件及其作用,包括stm32f10x_sdio.c在内的驱动文件用途,不同文件夹如core、obj等的组织方式,以及USE_STDPERIPH_DRIVER和STM32F10X_HD宏的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问:

头文件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




<think>好的,我现在需要帮助用户了解如何新建一个STM32F103的Keil工程。首先,根据用户提供的引用内容,用户可能已经找到了一些参考资料,但需要更详细的步骤指导。我需要结合用户给出的引用信息,整理出一个清晰的步骤流程。 首先,用户提到的引用[1][2]都提到了标准外设库的文件路径,比如STM32F10x_StdPeriph_Lib_V3.6.0V3.5.0。这说明用户可能需要先下载并解压标准库文件。因此,第一步应该是准备开发环境,包括安装Keil MDK-ARMSTM32F1支持包,以及获取标准外设库。 接下来,引用中提到了复制模板文件到User目录。这应该是在创建工程结构时的重要步骤,比如将标准库中的启动文件、链接脚本、系统文件等复制到项目目录中。需要详细说明这些文件的来源复制的位置,确保用户不会遗漏。 然后,新建工程部分需要指导用户如何在Keil中创建新项目,选择正确的芯片型号(STM32F103C8T6),添加组文件,配置包含路径,设置编译选项等。这部分需要分步骤说明,特别是配置包含路径设置调试工具(如ST-Link)可能会让新手感到困惑,需要详细解释。 另外,用户可能对如何验证工程是否成功创建有疑问,所以最后应该提到编译工程下载程序到开发板,并提醒可能遇到的常见问题,比如驱动安装或连接问题。 需要注意的是,用户提供的引用内容中提到的文件路径可能因库版本不同而有所变化,需要提醒用户根据实际下载的库版本调整路径。此外,要确保所有步骤中的操作顺序正确,避免因步骤错乱导致工程配置错误。 最后,生成相关问题时,要考虑用户可能的后续需求,比如工程结构优化、添加外设驱动、处理编译错误等,这些都是用户在创建工程后可能遇到的进一步问题,应该作为相关问题列出,帮助用户深入学习。</think>### 新建STM32F103 Keil工程教程 #### 一、准备开发环境 1. **安装Keil MDK-ARM** 下载并安装Keil μVision(MDK-ARM)开发环境,需包含STM32F1系列支持包(例如:Keil.STM32F1xx_DFP.2.x.x.pack)[^1]。 2. **获取标准外设库** 下载STM32F10x标准外设库(如STM32F10x_StdPeriph_Lib_V3.6.0),解压后备用[^1][^2]。 --- #### 二、创建工程结构 1. **新建项目文件夹** 在本地创建工程目录(例如`Project`),并在其中建立以下子文件夹: - **User**:存放用户代码(如`main.c`、`stm32f10x_it.c`) - **Libraries**:存放标准外设库文件 - **CMSIS**:存放CMSIS核心文件 - **Output**:存放编译输出文件 - **Listings**:存放临时文件 2. **复制模板文件** 将标准外设库中的以下文件复制到`User`文件夹: - `STM32F10x_StdPeriph_Lib_V3.x.x\Project\STM32F10x_StdPeriph_Template\main.c` - `STM32F10x_StdPeriph_Lib_V3.x.x\Project\STM32F10x_StdPeriph_Template\stm32f10x_it.c` - `STM32F10x_StdPeriph_Lib_V3.x.x\Project\STM32F10x_StdPeriph_Template\stm32f10x_conf.h` - `STM32F10x_StdPeriph_Lib_V3.x.x\Project\STM32F10x_StdPeriph_Template\stm32f10x_it.h`[^1][^2] --- #### 三、配置Keil工程 1. **新建工程** - 打开Keil,选择`Project > New μVision Project` - 选择芯片型号:`STM32F103C8T6` - 保存到工程目录下的`Project`文件夹 2. **添加文件组** | 组名 | 包含文件路径 | |------------|----------------------------------| | User | User/*.c | | CMSIS | Libraries/CMSIS/*.c | | Startup | Libraries/CMSIS/startup_stm32f10x_cl.s | | StdPeriph | Libraries/STM32F10x_StdPeriph_Driver/src/*.c | 3. **设置包含路径** ``` User Libraries/STM32F10x_StdPeriph_Driver/inc Libraries/CMSIS/CM3/CoreSupport ``` 4. **配置编译选项** - 在`Options for Target > C/C++`中预定义宏:`USE_STDPERIPH_DRIVER, STM32F10X_MD` --- #### 四、验证工程 1. **编译工程** 点击`Build`按钮,确保无报错(警告可暂时忽略)。 2. **下载程序** 连接ST-Link调试器,点击`Load`按钮将程序烧录到开发板。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值