由于原来的STM32F103ZET6的flash坏掉了,所以又买了一块STM32F429DISCOVERY,这块板子非常不错,基于Cortex-M4内核,自带一块2.4寸TFT触屏,主频为180M,且内置了ST-Link下载器,使用非常的方便。

近期参加校赛,用它的触屏写了个上位机,当时我是在实验室的电脑和我的平板电脑之间相互拷贝工程,由于ST官方的工程都是公用库文件,所以独立性不强,想要拷贝就得拷贝整个目录,为了解决这个问题,我仔细学习了官方工程的组成与调用,并成功的将所有文件分离出来,建立了一个独立的工程文件夹,以后再拷贝时,只需要将这单个工程拷贝出来,即可方便的移植,其间有不少小插曲,下面就对具体步骤进行详述。

一、建立工程文件夹体系

①首先得建立总的工程目录,我将它命名为STM32F429PROJ,并在其内建立Library、MDK-ARM、USER文件夹,如下图所示:

其中MDK-ARM放置启动文件,USER放置工程、主函数和中断函数,Library放置各类库函数。

②接下来进入Library内,建立Common、Discovery、DRIVER目录,它们用于放置各类库,其中Discovery中放置的是特色库,例如板上的TFT驱动程序,而DRIVER中则放置一些基本的库,和M3内核的库基本一致。而Common中为它们共同访问的基本库,如下图所示:

经过这两步之后,工程文件夹就制作完成了。

二、复制官方库中相应文件到工程文件夹:

STM32F429I-Discovery_FW_V1.0.0在官方可以下载,这是官方的库,我们需要把库文件复制到我们的工程下,具体操作如下:

①USER:由于我们建立触控工程.因此需要打开如下路径:

\STM32F429IDiscovery_FW_V1.0.0\Projects\Peripheral_Examples\Touch_Panel

将它下面这些文件拷贝到我们工程的USER目录内

②MDK-ARM:其内放置的启动文件,启动文件在官方工程的如下路径

\STM32F429I-Discovery_FW_V1.0.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm

将其中的startup_stm32f429_439xx.s复制到我们工程的MDK-ARM下。

③Library的Common:打开如下路径:

\STM32F429I-Discovery_FW_V1.0.0\Utilities\Common

将其中的所有文件拷贝到我们的Common目录下。

④Library的Discovery:首先在Discovery目录下建立inc与src目录,其中inc用于放置头文件,而src用于放置c文件,二者一一对应。

拷贝如下路径的所有.c文件到我们Discovery目录下的src:

\STM32F429I-Discovery_FW_V1.0.0\Utilities\STM32F429I-Discovery

同样将其中的.h文件拷贝到我们的inc中。

⑤Library的DRIVER:首先也是要建立inc与src,然后打开如下路径:

\STM32F429I-Discovery_FW_V1.0.0\Libraries\STM32F4xx_StdPeriph_Driver

将其中的inc与src分别拷贝到我们DRIVER目录下的inc与src中。

到现在为止,文件操作到此结束,下面是工程配置。

三、建立工程与配置

①关于Keil工程的建立方式我就不赘述了,注意的是选择芯片STM32F429ZI,不添加驱动文件。

下面是对工程的配置,首先单击快速工具栏的品字图标,打开工程配置,然后按如下的图片添加文件:

然后点击确认,这时所有的c文件和启动文件都添加进来了。

②添加h文件的目录:打开工程设置,选择C/C++选项卡,在下面的Include Path右面的“...”点击一下,打开配置页面,进行如下配置:

接下来配置宏定义,仍然是C/C++选项卡,上侧的Define内填入如下内容:

USE_STDPERIPH_DRIVER,STM32F429_439xx,USE_STM32F429I_DISCO,

③下面选择Debug选项卡,勾选最上面一栏右侧的Use左侧圆点,选择ST-Link Debugger,打开Settings,如下配置:

④继续保持上面的窗口不关闭,打开Flash Download选项卡,添加如下设备描述:

经过这些配置,一个完整的工程就建立完毕了。接下来点击全部编译,没有意外的话会得到0 warning与0 error的工程,以后使用这个模板,会非常方便。

完整工程的下载地址如下:

http://down.51cto.com/data/1282075

STM32F429学习笔记(一)触屏工程Keil建立的更多相关文章

  1. Windows phone 8 学习笔记(1) 触控输入

    原文:Windows phone 8 学习笔记(1) 触控输入 Windows phone 8 的应用 与一般的Pc应用在输入方式上最大的不同就是:Windows phone 8主要依靠触控操作.因此 ...

  2. 移动终端学习2:触屏原生js事件及重力感应

    如今智能移动设备已经渗透到人们生活的方方面面,用户数量也在不断迅速增长(市场研究机构 eMarketer 在今年初发表的趋势报告中预测,2014年至2018年,中国智能手机用户从总人口的 38.3%增 ...

  3. Sparse Filtering 学习笔记(三)目标函数的建立和求解

      Sparse Filtering 是一个用于提取特征的无监督学习算法,与通常特征学习算法试图建模训练数据的分布的做法不同,Sparse Filtering 直接对训练数据的特征分布进行分析,在所谓 ...

  4. Windows phone 8 学习笔记(1) 触控输入(转)

    Windows phone 8 的应用 与一般的Pc应用在输入方式上最大的不同就是:Windows phone 8主要依靠触控操作.因此在输入方式上引入一套全新的触控操作方式,我们需要重新定义相关的事 ...

  5. sql 入门经典(第五版) Ryan Stephens 学习笔记  第四部分:建立复杂的数据库查询/

    第十三章: 在查询表里结合表 1.等值结合 : // 选择 tabla_a 和table_b 中id相等的行,输出 他们的id 和name select table_a.id , table_a.na ...

  6. kettle菜鸟学习笔记2----第一个kettle转换的建立及执行

    相关概念: Kettle数据清洗是采用元数据(Meta-data)驱动,以数据流的方式进行的,数据从数据源(数据库/文件等)在一系列相连的step之间依次向后流动,各个step完成对流经该step的数 ...

  7. Hibernate学习笔记(一):mycelipse建立项目流程(未完成)

    1.部署数据库: 2.部署项目: 3.引入Hibernate: 4.url配置

  8. JavaScript触屏滑动API介绍

    随着触屏手机.平板电脑的普及和占有更多用户和使用时间,触屏的触碰.滑动等事件也成为javaScript开发不可避免的知识,现在何问起就和大家一起学习js的触屏操作,js的触屏touchmove事件,为 ...

  9. Windows phone 8 学习笔记

    Windows phone 8 学习笔记(1) 触控输入  http://www.apkbus.com/android-138547-1-1.html Windows phone 8 学习笔记(2) ...

随机推荐

  1. Linux记录从此开始

    Linux记录从此开始~ 希望自己多写代码同时多记录~

  2. 优化 从Draw Calls到GC

    原文出处: 慕容小匹夫的博客(@慕容小匹夫)   欢迎分享原创到伯乐头条 前言: 刚开始写这篇文章的时候选了一个很土的题目...<Unity3D优化全解析>.因为这是一篇临时起意才写的文章 ...

  3. 解决 com.sun.*包导入错误

    解决 com.sun.*包导入错误 com.sun.image.codec.jpeg.*导入错误如何解决: com.sun.*是受限制访问的API,Eclipse 默认把受访问限制的API设成了ERR ...

  4. E-R图的基础练习

    第1题: 设有商店和顾客两个实体,“商店”有属性:商店编号.商店名.地址.电话,“顾客”有属性:顾客编号.姓名.地址.年龄.性别.假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店 ...

  5. 图片上传功能&lt;转&gt;http://blog.csdn.net/u011159417/article/details/50126023

    以前也实现过上传,只不过每次都是,写完之后没有总结,下次遇到时,还要重新写,重新调式,很是浪费时间,所以,今天实现一个上传图片的功能,包括简单的页面和servlet,下次再要写这个功能时,直接拿过来就 ...

  6. jsp七大动作和三大指令

    一:include 动态包含(分别编译):用jsp:include动作实现<jsp: include page="included.jsp" flush="true ...

  7. VisualStudio基本使用(1)-显示行号

    "工具"-"选项"-"文本编辑器"-"C/C++"-"常规",勾选"行号"复选框 ...

  8. Thinking in Java——笔记(4)

    Controlling Execution true and false Java doesn't allow you to use a number as a boolean. If you wan ...

  9. HTC Vive开发笔记之SteamVR插件集成

    重要组件 SteamVR_Camera VR摄像机,主要功能是将Unity摄像机的画面进行变化,形成Vive中的成像画面 使用方法: l 在任一个摄像机上增加脚本 l 点击Expand按钮 完成以上操 ...

  10. 漫谈CGI FastCGI WSGI

    作者:auxten链接:https://zhuanlan.zhihu.com/p/20054757来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. CGI(Common ...