使用keil软件创建一个STM32工程

----------------芯片:STM32F429IGT6



创建一个STM32F429IGT6的工程,其他型号的单片机也大同小异。因为最近开始学习STM32F429IGT6单片机,所以以此为例,在看此文章之前需要有三个前提:1、安装keil uVision5软件。2、安装好对应的器件的pack包。3、下载一个对应的标准库软件包。

QQ交流群:1026531747(包含此次文章文件:keil uVision5软件安装包、器件的pack包、标准库软件包。群为新建群,还没有特别多的群员和文件。未来将不断补充。)


一、新建工程文件夹目录

新建一个文件夹,并命名为example,当然其他的名字也OK。并在此文件夹下建立以下几个单独的文件夹。分别是CORE、FWLIB、HARDWARE、OBJ、SYSTEM、USER,如下图所示。


二、建立keil工程

1、打开keil uVision5软件,点击菜单:project---> New uVision Project...选择进入USER文件夹,输入工程文件名example,点击保存。

2、随后会跳转出来挑选器件的页面。 选择 STM32F429IGTx型号。                                                          (STMicroelectronics-->STM32F4 Series-->STM32F429-->STM32F429IG-->STM32F429IGTx)。如果你的芯片是其他型号,则选择相应芯片型号。(当然只有安装对应的器件pack才会显示该内容,加油!)也可以直接从Search输入自己的型号,软件将自动给你定位到位置,再进行选中就可以了。

3、选中后点击确认。将会跳转到下一个页面,如下图,我们不用管它直接关掉就行。

4、弄到这里,我们就建成了一个基本的工程框架,如下图。

5、并且,我们的USER文件夹下已经有了如下几个文件


三、固件的复制(这一步贼麻烦,朋友请顶住!)

1、将STM32CubeF4 包下的Src,Inc 文件夹复制到我们刚才建立的 FWLAB文件夹下面。                                                      (路径:STM32Cube_FW_F4_V1.11.0\Drivers\STM32F4xx_HAL_Driver)

2、将文件 startup_stm32f429xx.s 复制到CORE目录下面                                                                                                          (路径:STM32Cube_FW_F4_V1.11.0\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm)。

将文件cmsis_armcc.h, core_cm4.h,core_cmFunc.h,core_cmInstr.h ,core_cmSimd.h 同样复制到CORE目录下面      (路径:STM32Cube_FW_F4_V1.11.0\Drivers\CMSIS\Include)。

3、将 stm32f4xx.h,system_stm32f4xx.h 和 stm32f429xx.h3 个文件  复制到 USER目录下面 。                                          (路径:STM32Cube_FW_F4_V1.11.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include)

将stm32f4xx_it.h,stm32f4xx_hal_conf.h 和main.h 3个头文件复制到USER目录下面。                                                          (路径:STM32Cube_FW_F4_V1.11.0\Projects\STM32F429I-Discovery\Templates\Inc)

将 system_stm32f4xx.c, stm32f4xx_it.c, stm32f4xx_hal_msp.c 和 main.c 四个文件同样复制到 USER 目录下面。              (路径:STM32Cube_FW_F4_V1.11.0\Projects\STM32F429I-Discovery\Templates\Src)

此时我们文件夹下的变化如下,多出了如下文件

(恭喜呀,能看到这你已经很强了,加油!)


四、把文件添加到工程里

1、点击命令File Extensions,打开manage project items操作面板。

2、将target 1的名字修改为example,然后在Groups一栏删除Source Group1。在Groups里,建立五个 Groups:USER,SYSTEM,CORE,HARDWARE和 HALLIB。然后点击 OK,可以看到 我们的 Target 名字以及 Groups情况如下图 所示:

3、然后我们往Groups文件里添加文件。

首先是HALLIB,然后点击右边的 Add Files,定位到我们刚才建立的目录\HALLIB\Src下面,将里面文件选中,然后点击Add,然后 Close。就可以进行添加。

Src下面的文件并不是每一个都是必须添加的,根据我们自己工程的需要进行添加,添加的太多会使工程变大,当然编译时花费的时间也会更长。其中在本此实验中stm32f4xx_hal_dsc.c , stm32f4xx_hal_iptim.c 和 stm32f4xx_hal_msp_template.c 三个文件不需要引入工程。因为他与本实验芯片STM32F429IGT6不匹配。

此次试验将除以上三个外的文件全都添加了进去。(后面我编译的时候,真的,慢的一批)可以看到 Files 列表下面包含我们添加的文件。

4、USER 分组下面需要添加的文件 USER 目录 下面所有的.c 文件:main.c,stm32f4xx_hal_msp.c,stm32f4xx_it.c 和 system_stm32f4xx.c 四个 文件。

5、使用同样的方法,选中 CORE 分组,点击 Add Files 按钮,添加需要的文件到 CORE 分组(此次添加时,有些文件显示不出来,是文件类型的原因,选择全兼容类型)。

添加完成后,点击确定,回到工程页面,如下图所示,我们可以看到这些文件已经添加到工程里面。

6、设置路径,点击主界面的魔术棒命令进入工程选项编辑器

选中 C/C++ 栏,进入Include Paths的设置

新建添加如下工程目录

7、添加预定义宏STM32F10X_HD,USE_STDPERIPH_DRIVER。因为固件库的很多.C文件会引用这两个宏定义,如果不做定义的话,编译会报错。具体这两个定义用来做什么,暂时先不用管它,以后再做分析。

8、选择“Output”选项,将Create HEX_File前的对勾打上,然后选择下面的“Select folder for objects…”然后选择目录为我们上面新建的 OBJ 目录,然后依次点击 OK 即可。操作过程如下图

(朋友你能看到这、真的很强的,佩服你的耐心,你未来人生肯定会成功的,加油!)


五、编译

1、点击全部编译按钮进行编译。如下图

2、编译的结果如下没有错误,没有警告(编译真滴很慢)。


六、补充

1、朋友你可能会问HARDWARE文件夹为什么没有用到。答:HARDWARE文件夹放置我们自己编写的文件库,因为没有写,所以没有用到,但是建立HARDWARE在之后使用的时候会方便很多。

2、朋友你可能会问SYSTEM文件夹为什么没有用到。答:SYSTEM文件夹一般放置系统时钟初始化,串口打印,延时函数等函数库,使用起来会更加方便。如果你需要请从其他工程自行复制到对应文件夹,并记得添加路径。

3、朋友你可能会问main.c里头这是啥,怎么这么乱。答:你全选,删除,写自己文件就好了。


以后将每天更新一篇文章,用于督促自己学习,同时更希望能帮助到大家,若有侵权请联系删掉。

使用keil软件创建一个STM32工程相关推荐

  1. keil5中新建一个STM32工程

    前言 相信很多stm32的初学者对于创建一个新的工程还是感觉比较困难的,即使学习了一段时间的stm32,创建一个新工程还是会感到无所适从.相信大家在学习stm32之初都是把整个例程工程文件copy下来 ...

  2. PCB设计,Altium Designer软件绘制一个stm32最小系统的电路原理图、PCB图。

    Altium Designer软件入门 一.Altium Designer简介 1).基本简介 2)PCB设计 整体流程 二.安装Altium Designer 二.软件入门 1创建一个stm32f1 ...

  3. Servlet学习DAY_01:服务器概念/Web服务器的作用/ Servlet概念/ 如何关联和解除Tomcat/ 创建一个Web工程 /Servlet响应流程/ Get-Post /常见异常

    Servlet 什么是服务器 服务器就是一台高性能电脑 电脑上安装了提供服务的软件就称为 xxx服务器 举例: 邮件服务器: 就是在电脑上安装了提供邮件收发服务的软件 ftp服务器: 就是在电脑上安装 ...

  4. CCS6 自己创建一个新工程

    对于新手来说通常是直接将例程直接导入CCS中,观察实验现象,但是如果自己从零创建一个新工程该怎么办呢??? 1.首先打开CCS软件在主界面点击project->New ->CCS Proj ...

  5. 如何使用eclipse软件创建一个Java项目?

    同学们在参加Java的时候老师肯定会教给你们如何去创建一个项目,这里怕有些同学没记住,所以单独为大家分享一篇如何使用eclipse软件创建一个Java项目教程,感觉有用的话收藏转发一下~ eclips ...

  6. 用Altium Designer软件绘制一个stm32最小系统的电路原理图

    学习使用Altium Designer软件绘制一个stm32最小系统的电路原理图 一.stm32最小系统电路原理图 二.绘制stm32最小原理图 (一)新建工程 (二)添加新的Schematic(原理 ...

  7. SoapUI——创建一个SOAP工程

    本章简单介绍SOAP工程包括创建工程,介绍面板区域功能. 目录 前言 1 创建工程 1.1 SOAP 工程 1.2 REST 工程 2 引入工程 前言 SoapUI工程在导航树的根节点下,Soap工程 ...

  8. 使用keil5的固件库建立第一个STM32工程

    这里小编使用STM32F103ZET6型号开发板为例,给大家介绍使用keil5的固件库建立一个LED灯闪烁的工程.这种方式简单直接易上手,特适合某些想偷懒或赶时间编程的朋友. 一.步骤: 第一步,选择 ...

  9. 51单片机开发环境keil uVision4安装,创建一个简单工程

    1.51单片机程序头文件 #include<reg51.h> 简单的51 C程序 #include<stdio.h> void main() /*主函数*/ {while(1) ...

最新文章

  1. 用Visual C#创建Windows服务程序
  2. mysql主键始终从小到大_Mysql从入门到入神之(四)B+树索引
  3. np.unique 去重用法
  4. 【spring-boot】restfull api 返回值中,去掉 null 值
  5. python logging之multi-module
  6. 7-17 汉诺塔的非递归实现 (25 分)(思路分析)
  7. [html] 写一个密码默认星号,但可以查看密码的输入框
  8. eclipse安装反编译工具
  9. 基于机器视觉的线圈检测
  10. 作为技术人员出现场,感触颇多
  11. Flask 参数简介
  12. 智慧城市——数字化城市管理平台系统建设方案
  13. 金蝶账套总显示找不到服务器,金蝶KIS账套名称登录时没有显示怎么办呢
  14. 化工热力学逸度计算_matlab程序,化工热力学逸度计算_Matlab程序
  15. 小程序:uniapp开发和原生开发语法区别
  16. 基恩士计算机软件,【基恩士】IV 系列 开始指南 PC软件篇 (简体中文).pdf
  17. 笔记本电脑开机后自带的键盘用不了,需要重启电脑才能用
  18. java设置短信验证码过期时间_实现短信验证码有效时间
  19. 关于二级域名与三级域名的解释
  20. win10 网络重置后WIFI不见了

热门文章

  1. 微服务轮子项目(45) -Jenkins自动化部署
  2. 李日学撤回私有化要约:寺库市值跌至1783万美元 趣店损失惨重
  3. 常用LINUX命令汇总
  4. Scala List操作笔记 --备忘(9.9总结)
  5. 家用计算机长期不关机的后果,长时间不关机对电脑有什么影响
  6. 人工智能在教育行业的应用
  7. Kibana KQL查询语法
  8. 计算机网桥知识,网桥的作用及工作原理【图文】
  9. 通过ip获取所在地理位置、通过手机号获取归属地
  10. 台式计算机网卡型号怎么查找,台式机无线网卡如何查看型号