STM32F429学习笔记(一)触屏工程Keil建立
由于原来的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建立的更多相关文章
- Windows phone 8 学习笔记(1) 触控输入
原文:Windows phone 8 学习笔记(1) 触控输入 Windows phone 8 的应用 与一般的Pc应用在输入方式上最大的不同就是:Windows phone 8主要依靠触控操作.因此 ...
- 移动终端学习2:触屏原生js事件及重力感应
如今智能移动设备已经渗透到人们生活的方方面面,用户数量也在不断迅速增长(市场研究机构 eMarketer 在今年初发表的趋势报告中预测,2014年至2018年,中国智能手机用户从总人口的 38.3%增 ...
- Sparse Filtering 学习笔记(三)目标函数的建立和求解
Sparse Filtering 是一个用于提取特征的无监督学习算法,与通常特征学习算法试图建模训练数据的分布的做法不同,Sparse Filtering 直接对训练数据的特征分布进行分析,在所谓 ...
- Ruby学习笔记4: 动态web app的建立
Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...
- 【小梅哥SOPC学习笔记】NIOS II工程目录改变时project无法编译问题
解决NIOS II工程移动在磁盘上位置后project无法编译问题 说明:本文档于2017年3月4日由小梅哥更新部分内容,主要是增加了讲解以Quartus II13.0为代表的经典版本和以15.1为代 ...
- Windows phone 8 学习笔记(1) 触控输入(转)
Windows phone 8 的应用 与一般的Pc应用在输入方式上最大的不同就是:Windows phone 8主要依靠触控操作.因此在输入方式上引入一套全新的触控操作方式,我们需要重新定义相关的事 ...
- COCOS学习笔记--单点触控
这篇博客来总结下cocos单点触控的相关内容: 我们在Layer类的源代码中能够看到.Layer类提供了一下4个与屏幕单点触控相关的回调方法: onTouchBegan().onTouchMoved( ...
- 6.JasperReports学习笔记6-jasperreports和ssh工程整合
转自:http://www.blogjava.net/vjame/archive/2013/10/12/404908.html 一.导入jasperreport相关jar包,这里采用当前比较稳定的5. ...
- sql 入门经典(第五版) Ryan Stephens 学习笔记 第四部分:建立复杂的数据库查询/
第十三章: 在查询表里结合表 1.等值结合 : // 选择 tabla_a 和table_b 中id相等的行,输出 他们的id 和name select table_a.id , table_a.na ...
随机推荐
- 短文本分析----基于python的TF-IDF特征词标签自动化提取
绪论 最近做课题,需要分析短文本的标签,在短时间内学习了自然语言处理,社会标签推荐等非常时髦的技术.我们的需求非常类似于从大量短文本中获取关键词(融合社会标签和时间属性)进行用户画像.这一切的基础就是 ...
- 从Stage角度看cassandra write
声明 文章发布于CSDN cassandra concurrent 具体实现 cassandra并发技术文中介绍了java的concurrent实现,这里介绍cassandra如何基于java实现ca ...
- 28 自定义View画坐标和柱状图
自定义View类 RectView.java package com.qf.sxy.day29_customview.widget; import android.content.Context; i ...
- 数据标准化/归一化normalization
http://blog.csdn.net/pipisorry/article/details/52247379 基础知识参考: [均值.方差与协方差矩阵] [矩阵论:向量范数和矩阵范数] 数据的标准化 ...
- java虚拟机 jvm 栈数据区
java栈帧还是需要一些数据支持常量池的解析.正常方法的返回和异常的处理.大部分的java字节码指令需要进行常量池的访问,在栈帧数据区中保存着访问常量池的指针,方便程序访问java常量池.如下图所示: ...
- 剑指offer面试题3 二维数组中的查找(c)
剑指offer面试题三:
- UITableView如何撤销移动操作
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们知道使用UITableView的委托方法canMoveRo ...
- 关于V4L2中操作比较重要的几个命令以及一般操作流程总结
最近在做关于摄像头测试程序相关的一些开发,主要是想要实现在摄像头采集视频的过程中,通过按键来实现拍照,然后将拍照得到的数据保存到一个文件中,通过了解V4L2的一些相关操作,原来,拍照后的数据是保存在一 ...
- Android的PopupWindow使用android学习之旅(四十三)
PopupWindow简介 PopupWindow是一个类似dialog的控件,可以接受任何的view作为下拉列表显示. 用法 代码展示 package peng.liu.test; import a ...
- [Linux]vbox 虚拟机添加新磁盘
情况是这样的,开始创建虚拟机的时候硬盘设置太小了,只有10g,我现在通过vbox的设置给这个linux(centos6.6)虚拟机添加了一块硬盘. 下面的操作就是怎么把硬盘挂载到系统中. 通过 fdi ...