一、总述

之前买了一块STM32F407ZG的核心板,以及和它配套的TFT显示屏,学了很久了吧。最近同学让我教他STM32开发,于是就想写点东西总结一下。

我习惯用的开发环境是Keil,软件及开发环境的安装网上有很多例子,在这里就不再细说了。那么接下来,就是学习如何新建一个STM32工程。(为了减小开发负担,在这里使用了STM32F4的StdPeriph固件库)

二、第一步——建目录

首先,新建一个文件夹,名字就是工程的名字,这里工程名为STM32F407ZG,如下图:(另一个文件stm32f4_dsp_stdperiph_lib.zip就是STM32F4的StdPeriph固件库)

然后,进入工程文件夹内部,新建Driver、Hardware、Libraries、Project四个目录,如下图所示:

Driver:存放主程序文件、中断处理函数的文件、外设库的配置文件
Hardware:存放一些外设、模块的驱动程序
Libraries:存放STM32官方提供的固件库
Project:MDK工程相关的目录,存放编译生成的中间文件,KEIL工程相关的文件

三、第二步——拷贝文件

首先,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Libraries/下的全部文件解压到刚刚新建的STM32F407ZG/Libraries目录下,如下图:

然后,将固件库压缩文件/STM32F4xx_DSP_StdPeriph_Lib_V1.4.0/Project/STM32F4xx_StdPeriph_Templates/目录下的main.c、main.h、stm32f4xx_conf.h、stm32f4xx_it.c和stm32f4xx_it.h解压到刚刚新建的STM32F407ZG/Driver目录下,如下图:

如果有keilkilll.bat文件,拷贝至工程文件夹下,也可以右键->新建文本文件,双击打开,加入以下内容,然后再更改文件名为keilkilll.bat。这个文件用于删除编译中间文件,减小磁盘使用空间,一般上传源代码前都要运行一遍使上传文件变少。这一步可以省略。

del *.bak /s
del *.ddk /s
del *.edk /s
del *.lst /s
del *.lnp /s
del *.mpf /s
del *.mpj /s
del *.obj /s
del *.omf /s
::del *.opt /s  ::不允许删除JLINK的设置
del *.plg /s
del *.rpt /s
del *.tmp /s
del *.__i /s
del *.crf /s
del *.o /s
del *.d /s
del *.axf /s
del *.tra /s
del *.dep /s
del JLinkLog.txt /sdel *.iex /s
del *.htm /s
del *.sct /s
del *.map /s
exit

四、第三步——MDK建工程

打开Keil uVision5软件,点击菜单->Project->New uVision Project...,目录选择到我们的新建的STM32F407ZG/Project/目录下,输入工程名,点击保存,如下图:

接下来进入选择芯片对话框,选择Software Packs,然后芯片树中选择STMicroelectronics->STM32F4 Series->STM32F407->STM32F4407ZG,然后,点击OK,把后来弹出来的窗口关了,没有弹出来的就算了。

五、第四步——MDK项目配置

点击下图框出来的魔术棒图标,切换到C/C++选项卡,填入define内容 USE_STDPERIPH_DRIVER STM32F40xx,然后,点include paths后面的按钮,进入include设置窗口。

双击列表,点击后面的按钮进入目录选择,或者手动添加,加入下面的目录信息:点击OK,回到主页面。

..\Libraries\CMSIS\Device\ST\STM32F4xx\Include
..\Libraries\CMSIS\Include
..\Libraries\STM32F4xx_StdPeriph_Driver\inc
..\Hardware
..\Driver

再点击下图框出来的三个正方形的图标,在Groups下添加CMSIS、Driver、Hardware、Library目录:

在CMSIS目录下,添加..\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\文件夹下的文件system_stm32f4xx.c、arm\startup_stm32f40xx.s

在Driver目录下,添加..\Driver\文件夹下的文件main.c、stm32f4xx_it.c

在Library目录下,添加..\Libraries\STM32F4xx_StdPeriph_Driver\src\文件夹下的全部文件

由于新学板子,还没有用到其他模块,所以Hardware为空。

最后,点击OK,返回主页面。

六、第五步——编译程序

点击下图中的编译按钮,进行编译。

发现在编译stm32f4xx_fmc.c文件时出错,回到上一步中,把Library目录中的stm32f4xx_fmc.c删掉,再编译一下,错误没有了。

至此,新建工程圆满完成。

STM32F4开发-新建工程相关推荐

  1. linux嵌入式开发箱跑马灯,跑马灯实验(STM32F4开发板)

    [实例简介] 实验器材: 探索者STM32F4开发板 实验目的: 学习GPIO作为输出的使用 硬件资源: 1,DS0(连接在PF9) 2,DS1(连接在PF10) 实验现象: 本实验通过代码控制开发板 ...

  2. STM32F4开发板硬件简介

    参考:STM32F4开发板硬件平台简介 作者:SKY丶丿平才 发布时间: 2021-03-20 10:44:41 网址:https://blog.csdn.net/weixin_48264057/ar ...

  3. STM32F4开发板硬件平台简介

    文章目录 前言 一.ALIENTEK 探索者 STM32F4 开发板资源初探 1.开发板资源图 2.ALIENTEK 探索者 STM32F4 开发板板载资源汇总 3.ALIENTEK 探索者 STM3 ...

  4. ubuntu16.04上搭建stm32f4开发环境

    ubuntu16.04上搭建stm32f4开发环境 工程源码的地址 https://github.com/txson/ubuntu-stm32 欢迎大家参与修改 搭建交叉编译环境 stm32 属于ar ...

  5. 基于STM32F4开发的智能台灯

    基于STM32F4开发的智能台灯 写这篇博客的目的有2个,首先是记录一下学习STM32大半年来的第一个自己动手开发的项目,整理一下开发过程和思路:其次也是希望可以和更多的同行交流开发经验,有什么问题可 ...

  6. 【STM32】STM32F4开发板简介

    00. 目录 文章目录 00. 目录 01. STM32F4开发板的资源图 02. STM32F4开发板板载资源 03. STM32F4部分资源说明 04. 附录 05. 声明 01. STM32F4 ...

  7. STM32F4开发-TFT屏驱动(支持横屏、竖屏选择)

    一.总述 以下的程序都是基于 https://blog.csdn.net/zhyulo/article/details/89816439 方法建立的工程. 代码已上传:https://download ...

  8. 1.Arcgis Engine + WPF插件式(Extending Arcobjects)开发---新建工程(1)

    以10.4版本的Arcgis为例,首先需要下载Arcgis Engine安装包,安装好以后,VS直到出现以下选项证明安装成功. Desktop Add-ins是通过一个ESRI自带的插件程序进行注册. ...

  9. Atmel Studio-SAM单片机开发 ---新建工程

    我早前就接触过Atmel的AVR单片机,我相信很多朋友也是这样.我记得在08年左右的时候atmel非常牛逼的AVR单片出现很不利于市场的供货问题, 让很多对他亲昵的朋友都向别人投怀送抱.好,那我们接下 ...

  10. 【stm32f4 C++与C混合开发】建立keil5的ARM Compiler 6(AC6)标准库开发工程

    文章目录 前言 一.选择正点原子串口实验的工程 二.用AC6编译纯C语言代码 1.打开魔法棒选择default compiler version6 2.编译工程 3.更改包含头文件依赖 4.修改旧版代 ...

最新文章

  1. HTML5 WebSocket之HelloWorld
  2. centos 查看mysql 服务器配置_在CentOS上MySQL数据库服务器配置方法
  3. 台湾大学林教授libsvm在matlab的安装
  4. java 查询功能_java利用反射实现查询功能
  5. Eclipse执行import命令导入maven项目时报错:Add a version or custom suffix using Name template in Advanced set...
  6. Struts1.2配置详解
  7. python中math库最大值_python-math库解析
  8. 锁屏面试题百日百刷-网络篇(一)
  9. redis应用场景java实例_redis使用场景和java测试案例
  10. 基于机器视觉的电容表面字符检测
  11. 游戏社交不足怎么办? 游戏发行中的社交化运营经验分享
  12. 二叉树 -- 5.1.1 Binary Tree Level Order Traversal -2 -- 图解
  13. windows下杀死关不掉的进程
  14. 从头开始聊P问题、NP问题与NPC问题
  15. 爱普生L3153打印机如何清洗喷头
  16. ipv6是什么?ipv6怎么设置?
  17. 李笑来《自学是门手艺》
  18. POJ 1565 Skew Binary
  19. python神经网络编程chap01
  20. charles使用的遇到的坑,以及日常使用

热门文章

  1. SketchUpPro 草图大师(2015-2020合集)
  2. johnson算法(johnson算法最优顺序怎么算)
  3. Johnson算法寻找图中的所有简单环路
  4. 遗传算法求解TSP问题-python实现
  5. OBS 直播、录屏软件下载安装操作教程
  6. 无法读源文件或磁盘_拯救动态磁盘的一些尝试
  7. python实现超市商品销售管理系统_python实现超市商品销售管理系统
  8. winform下拉框模糊查询_WINFORM中的COMBOX模糊查询
  9. Win7 SP1语言包微软官方下载地址及使用方法
  10. python花瓣网图片_python制作花瓣网美女图片爬虫