一、 首先在电脑的某个目录下创建一个空文件夹用来存放工程文件。创建好后在该文件目录下分别创建CORE 、FWLIB、OBJ、SYSTEM、USER等五个子文件夹。至于这些文件夹名字,实际上是可以任取的,我们这样取名只是为了行业规范。
二、打开keil软件,点击 Keil 的菜单: Project –>New Uvision Project,保存时将目录定位到自己创建的文件下的USER子目录下:
三、接下来会出现一个选择 Device 的界面,就是选择我们的芯片型号,我们选择STM232F407ZE(如果使用的是其他系列的芯片,选择相应的型号就可以了)特别注意: 一定要安装对应的器件支持包才会显示这些内容)。
这里是一些组件,直接点击OK即可,这样工程文件就算初步建立完成
四、打开TEST文件下的USER子目录下可见包含 2 个文件,Listings 和 Objects 文件夹是 MDK 自动生成的文件夹,用于存放编译过程产生的中间文件,这里可以自由设置,到时候会定位到OBJ里面去,这两个文件可不用理他
五、现在打开官方固件库,定位到STM32F4xx_DSP_StdPeriph_Lib_V1.4.0LibrariesSTM32F4xx_StdPeriph_Driver下面,
将目录下面的 src,inc 文件夹 copy 到我们刚才建立的 FWLib 文件夹下面。
六、同样定位到 STM32F4xx_DSP_StdPeriph_Lib_V1.4.0LibrariesCMSISDeviceSTSTM32F4xxSourceTemplatesarm下面,将文件 startup_stm32f40_41xxx.s复制到 CORE 目录下面。
然后定位到目录STM32F4xx_DSP_StdPeriph_Lib_V1.4.0LibrariesCMSISInclud, 将 里 面 的 四 个 头 文 件 :core_cm4.h、core_cm4_simd.h、core_cmFunc.h 以及core_cmInstr.h 同样复制到 CORE 目录下面。
七、继续定位到目录:
STM32F4xx_DSP_StdPeriph_Lib_V1.4.0LibrariesCMSISDeviceSTSTM32F4xxInclude将里面的 2 个头文件 stm32f4xx.h 和 system_stm32f4xx.h 复制到 USER 目录之下。 这两个头文件是STM32F4 工程非常关键的两个头文件。
然后进入目录 STM32F4xx_DSP_StdPeriph_Lib_V1.4.0ProjectSTM32F4xx_StdPeriph_Templates,
将 目 录 下 面 的 5 个 文 件 main.c , stm32f4xx_conf.h , stm32f4xx_it.c , stm32f4xx_it.h ,system_stm32f4xx.c 复制到 USER 目录下面。
最后USER文件如下图所示:
八、完成以上步骤后,下面我们需要把这些文件加入我们的工程中去。右键点击 Target1,选择 Manage Project Items,如下图:
九、建立三个Groups: USER,CORE,FWLIB。然后点击 OK即可
十、接上一步,添加需要的文件选择 FWLIB,然后点击右边的 AddFiles,定位到我们刚才建立的目录GECLIBsrc 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add,然后 Close.可以看到 Files 列表下面包含我们添加的文件。
注意:
1、例若只用到GPIO的配置,可以只选择stm32f4xx_gpio.c这样可以减少工程的代码量,提高编译的速度。
2、有个文件stm32f4xx_fmc.c 比较特殊。这个文件STM32F42 和 STM32F43 系列才用到,所以我们这里要把它删掉(注意是 stm32f4xx_fmc.c 要删掉,不要删掉stm32f4xx_fsmc.c)。
十一、用同样的方法,我们CORE下面需要添加的文件为 startup_stm32f40_41xxx.s(注意:你需要选择文件类型为All files才能看得到这个文件),USER 目录下面需要添加的文件为 main.c, stm32f4xx_it.c,system_stm32f4xx.c。最后点击 OK。
十二、进入设置界面设置头文件存放路径,如果没有设置头文件路径,那么工程会出现报错,头文件路径找不到
我们需要添加的头文件路径包括:CORE, USER以及GECLIBinc。若需要添加到自己建立的头文件,也需要做路径的添加
十三、STM32F40 系列的工程,还需要添加一个全局宏定义标识符。添加方法是点击魔术棒之后,进入 C/C++选项卡,然后在 Define 输入框连输入:STM32F40_41xxx,USE_STDPERIPH_DRIVER。注意这里是两个标识符 STM32F40_41xxx和 USE_STDPERIPH_DRIVER,他们之间是用英文的逗号隔开的,请大家注意。
十四、在做编译工程之前我们首先要选择编译中间文件编译后存放目录。方法是点击魔术棒,然后选择“Output”选项下面的“Select folder forobjects…”,然后选择目录为我们上面的新建的 OBJ 目录。然后再OBJ目录下就可看到我们需要的程序.hex文件了。(上面第四步所说过)
十五、在编译之前,我们先把 main.c 文件里面的内容清空,编写自己的代码与此同时,我们要将 USER 分组下面的 stm32f4xx_it.c 文件内容清空。 或者删掉其中的 32 行对main.h 头文件的引入以及 144 行 SysTick_Handler 函数内容
下面我们点击编译按钮 编译工程,没有任何错误和警告,那工程文件就算完整的建立完成了。
十五、最后,打开工程文件会看到以下文件信息,这里不做一一介绍
注意:LIB里面的文件可根据自己需要进行增加或删除
如果是控制简单的GPIO输入或者输出,可以使用以上的这些文件就足够了。
上一篇:9、STM32的PWM的原理与使用(内附代码)
下一篇:STM32的SPI的原理与使用(W25Q128附代码)
推荐阅读最新更新时间:2024-11-10 11:09
推荐帖子
- #以拆会友#移动电源
- 我这个人,很扣门一般不爱拆东东,看到别人拆比较好的东东,有点不满意,因为同人一样,任何物品都有寿命,应爱护才是,今天拆这明天拆那的,本来十年的东东,一拆也许不能用了。我拆这个移动电源是同事的,求我修理,我正好给拍下了。本来半个月前我就修好了,几奈去很远的地方开个会,现在才发上来。他这个电源充不了电了,有一点电一充就显示满,但插到手机无反应。本来是个扔货我用稳压电源直接焊电池两端,很劲充给救回来了。现在还给同事了。这个是机壳,边锁的,拆开就费好几个。
- ddllxxrr 以拆会友
- ST H系列 Cortex
- ST最新的高频率MCU,除了H系列,还有没有出新款的Cortex?STH系列Cortex除了有CortexM系列的,还有CortexA系列的,也叫MPU还有W5系列的CortexM的H系列CortexA的MP13XX无线的STM32W5xx还一些特殊的电机的knx的等等除了有CortexM系列的,还有CortexA系列的,也叫MPU
- grarrow stm32/stm8
- 电子学必知必会
- 《电子学必知必会》简要介绍了电子学的基本原理及基本元件,并采用系统的观点(即功能方框图的方法)来探索各种各样基本的模拟电路、数字电路以及微型计算机和无线电技术;然后再进一步介绍生活中常用的各种电子电路技术,包括手机、有线和无线网络、音视频电子技术以及工业控制技术。《电子学必知必会》采用系统观的方法讲解电子学的基础,避开了繁复的电路分析,内容易读易学,可供那些对日用电子产品有好奇心的人士阅读,帮助他们更好地了解、选择、使用及维护他们所拥有的日用电子产品。http://downlo
- tiankai001 下载中心专版
- IO-Polling的代码分析
- 原文地址在前一篇文章《IO-Polling实现分析与性能评测》中提到了IO-Polling与中断的原理区别,并通过两种模式下NVMeSSD的性能测试对两者进行了对比。这篇文章将深入到IO-Polling的代码层面,对这一IO处理模式进行一个解读。IO-Polling模式已经加入了linux4.4的内核,并已有多个成员组在测试IO-Polling对快速设备的性能影响。目前的IO-Polling仅支持direct-IO的sync模式读写操作,后期将加入对libaio的IO-Polli
- 白丁 FPGA/CPLD
- 嵌入式系统的学习方法及经验
- 最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命令就可以完成非常复杂的功能,可是我们有没有想过,为什么会有这样的效果?如果没有去追问,只是机械地完成,并且看到实验效果,这样做其实并没有真正的掌握系统移植的本质。 在做每一个步骤的时候,首先问问自己,为什么要这样做,然后再问问自己正在做什么?搞明白这几个问题,我觉得就差不多了,以后不管更
- 灞波儿奔 微控制器 MCU
- 传感器结合微机在汽车上的应用
- 传感器结合微机在汽车上的应用如发动机点火,防抱死系统控制等传感器结合微机在汽车上的应用
- frozenviolet 汽车电子
设计资源 培训 开发板 精华推荐
- 电路原理仿真
- 【常熟理工】arduino与红外控制流水延时声控灯
- DI-143 - 高效喷墨电源提供高达 80 瓦的峰值功率
- 使用 Analog Devices 的 LTC1643AHCGN 的参考设计
- DI-56 - 19.2 W DC-DC 转换器
- 使用 Analog Devices 的 LTC1174CN8-3.3 的参考设计
- LTC1261IS8 -1.24V 发生器的典型应用电路,用于 4mA-20mA 到 0V-5V 的转换
- 具有外部偏置或同步功能的 CS51414 1.5 A、260 kHz 和 520 kHz 低压降压稳压器的典型应用电路
- TB62214AFNG 2 相双极步进电机驱动器评估板
- 使用 NXP Semiconductors 的 MC9S12P128MQK 的参考设计