原创 奔奔 STM32F207 入门学习笔记系列之一STM32F2x搭建开发环境

2011-11-25 15:03 12373 16 22 分类: MCU/ 嵌入式
本小节主要介绍STM32F2x系列芯片的开发环境搭建过程。

讲解之前先聊一下STM32F2x这个系列的芯片。与之前的STM32F1x,主要有一下几点的优势:

1)STM32F2x 的主频提升到了120MHZ,150DMIPS 处理速度。内部RAM128+4K 内嵌Flash 1M。

2)外设丰富了很多。增加了以下主力外设:Ethernet、USB OTG High/Full、DCMI数字摄像头。

3)对原来的外设有了增强。比如:现在的RTC多了一个RTC的控制器,原来只是一个32位的定时器。I2S原来只是半双工,现在是全双工,可以做多声道的播放器。

4)增加了芯片的安全加密性能。在内部集成了AES/DES/CRC等硬件加密器,不需要软件算法来实现。这点比较好。

5)在外设库方面,与F1不兼容了,有新的库文件提供。库是越来越好了,嘿嘿方便我们开发。

暂时只说这么多,后面我们继续补充。

在国内主流的两种编译器为MDK以及IAR,本小节以MDK为例讲解开发环境的搭建。

硬件平台:深圳市天漠科技的STM32F207 开发板(DevKit1207)。

选择它的理由:1)功 能很全面,基本上该有的功能都有了,方便我学习这款芯片。 大家可以测试基于 F2系列的基本上所有的功能。

2)它的器件选型时工业级,物料也比较好购买,我做项目的时候可以直接抄它的原理图---。--本人有点小懒。

3)支持UCGUI3.90a以及uCOS-II,方便我做项目,其它一家的没有。

4)范例丰富,文档写的比较好。以上是我自己买它的原因,仅供参考。

软件平台:MDK(即keil 4)F2系列的芯片至少需要MDK4.20以上版本支持,STM32F4需要MDK4.22A以上。

软件库以及范例。基于天漠的DevKit1207提供的相关范例。

想在开始向大家讲解,怎么用KEIL 4创建一个新的工程,具体步骤如下:

1)。在\code\STM32F2xx_StdPeriph_Demo目录下,新建文件夹,命名为My Project。在该文件夹中新建ADC_example文件夹。复制ADC3_DMA工程中的源文件和头文件(如下所示)到新建的ADC_example文件夹。

  • main.c
  • stm32f2xx_conf.h
  • stm32f2xx_it.c
  • stm32f2xx_it.h
  • system_stm32f2xx.c

2)。打开MDK软件,点击“Project”à“New uVision Project”新建一个工程,如图:

image038.jpg

弹出如下所示窗口,选择工程目录为ADC_example文件夹,输入工程名,点击“保存”建立工程。    

3)。进入到CPU选择窗口,选择STM32F207IG,如图:

image042.jpg

点击“OK”,此时MDK会弹出一个对话框,询问是否添加Startup code(启动代码)到当前工程。Startup code 用于配置MCU以及初始化编译环境。建议选择否,在后面的步骤中再手动添加。 

image044.jpg

在Project窗口中已经添加好一个Source Group。为了便于管理工程中的文件,需要再建立若干个Group。用户可以在右击“Target”,选择“Add Group…”来添加File Group,并给新建的Group命名。

image046.jpg

也可以使用“Mange Components”来新建File Group。

image048.jpg

4)。依次新建好User,Lib,STM32_EVAL,CMSIS,MDK-ARM等File Group,如下图:

image050.jpg

注意:File Group是用来组织文件的,用户可以按照自己的习惯来安排。这里的File Group用途为:

User:     用于组织用户编写的源文件。

Lib:      用于组织ST官方的外设驱动固件。

STM32_EVAL:   用于组织STM32F2xx评估板DevKit1207的板级驱动文件。

CMSIS:       用于组织CMSIS(Cortex MCU软件接口标准)文件。

MDK-ARM:  用于组织MDK针对ARM的启动文件。

5)。 添加User的源文件。右击User,在弹出的菜单中选择“Add files to Group ‘User’”

 image052.jpg

    选择ADC_example文件夹中的源文件(.c文件)添加到User Group中。

image054.jpg

6)。按照步骤5)的方法,依次添加Lib,STM32_EVAL,CMSIS,MDK-ARM的源文件。

Lib源文件路径:code\STM32F2xx_StdPeriph_Demo\Libraries\STM32F2xx_StdPeriph_Driver\src

注意:这些源文件在编译某个具体的例程时并不都是必须的,如果用户无法确定哪些是必须文件时,建议全部添加(会增加编译时间和代码体积)。

STM32_EVAL源文件路径:

 code\STM32F2xx_StdPeriph_Demo\Utilities\STM32_EVAL\STM322xG_EVAL

  注意:本例中仅需要stm322xg_eval.c 和stm322xg_eval_lcd.c

CMSIS源文件路径:

 code\STM32F2xx_StdPeriph_Demo\Libraries\CMSIS\CM3\CoreSupport

注意:本例中需要添加core_cm3.c

MDK-ARM源文件路径:

code\STM32F2xx_StdPeriph_Demo\Libraries\CMSIS\CM3\DeviceSupport\ST \STM32F2xx\startup\arm

注意:本例中需要添加startup_stm32f2xx.s

添加完文件后,Project窗口显示如下:

 image056.jpg

7)。工程文件添加完毕后,进行编译环境的参数设置。

点击窗口中的  image058.jpg或者右击“Target”选择“Target options”,弹出参数配置对话框。

 image060.jpg

选中“C/C++”选项卡,需要设置如图中的两个项目:

image062.jpg

8)。在“Define”右侧空白处依次输入宏:USE_STM322xG_EVAL,USE_FULL_ASSERT,USE_STDPERIPH_DRIVER(本例中设置了宏,用户自己编写的软件没有定义宏的话,此处可以不设置)。它们之间用1个空格隔开,如图:

image064.jpg

9)。点击“Include Paths”右侧空白栏右端的凸起标识,打开路径设置对话框。

image066.jpg

10)。在“Folder Setup”窗口单击下图所示部位添加一个路径。

 image068.jpg

11)。依次添加头文件所在的路径,如下图所示:

image070.jpg

点击“OK”退出路径设置,返回“Options for Target”界面

12)。 选择“Output”选项卡,选择输出文件类型。

如果需要输出HEX文件,则勾选上“Create HEX File”

image016.jpg

13)。选择“Debug”选项卡,选择仿真工具。

  • 使用ULINK2仿真器,则在下图中选择“ULINK Cortex Debugger”(默认使用ULINK)。
image018.jpg
  • 使用JLink仿真器,则在下图中选择“Cortex-M/R J-LINK/J-Trace”。
image020.jpg

点击“Settings”可以进入JLink参数设置界面,如下图所示。JLink的下载速率默认为2MHz(推荐使用2MHz及2MHz以下的速率)。设置好后,点击“OK”返回。

image022.jpg

14)。选择“Utilities”选项卡,选择程序下载工具。

  • 使用Ulink下载,则在下图中选择“ULINK Cortex Debugger”
image024.jpg

使用JlinK下载,则在上图中选择“Cortex-M/R J-LINK/J-Trace”。

点击“Settings”进入如下图所示的窗口(ULINK和Jlink设置方法相同)。在“Flash Download”选项卡中,默认设置如下图所示。

image028.jpg

如果勾选“Reset and Run则表示程序下载完后系统自动重启并运行(建议选择该项);不选该选项的话,可以在程序下载完成后,按Reset键手动重启。

在上图中点击“Add”进入“Add Flash Programming Algorithm”,这里选择“STM32F2xx Flash On-chip Flash 1M”,点击“Add”添加。

image030.jpg
添加好“Programming Algorithm”之后的界面如下图所示。
image032.jpg

设置完成后,点击“OK”退出“Options for Target”窗口返回到IDE界面。

17)。点击Build或者Rebuild对工程进行编译链接。

18)。点击“LOAD”将程序下载到评估板上。

PARTNER CONTENT

文章评论6条评论)

登录后参与讨论

用户1270331 2012-1-3 01:36

哥们,天漠的原理图能共亨一下吗?

用户1270331 2012-1-3 01:20

男子汉

用户401756 2011-12-1 23:53

很好的文章啊

用户400847 2011-11-30 17:17

非常好,很实用的资料

用户1640502 2011-11-28 11:37

受益了,正在学习MDK,谢谢。

用户900115 2011-11-25 12:12

发现在博客上传图片好麻烦啊

相关推荐阅读
用户900115 2012-07-18 09:44
奔奔LPC1788入门学习笔记系列之---LPC1788时钟配置
本小节主要介绍LPC1788时钟配置的要点。 讲解之前先聊一下LPC1788这个芯片,之所以选择LPC1788做项目,主要有以下几点的优势: 1)带LCD控制器,最大可以支持到1024*7...
用户900115 2012-03-14 11:16
评论:@ypt1980's Blog 博客中提到的“不用外部存储器的FATFS,支持长文件名和中文”
很好的中文支持...
用户900115 2011-06-07 09:19
Unicode和UTF-8之间的转换详解
Unicode和UTF-8之间的转换详解    通过这几天的研究,终于明白了Unicode和UTF-8之间编码的区别。Unicode是一个字符集,而UTF-8   是Unicode的其中一种,Unic...
用户900115 2011-05-30 17:09
STM32中断优先级相关概念与使用笔记
一、基本概念1.ARM cortex_m3内核支持256个中断(16个内核+240外部)和可编程256级中断优先级的设置,与其相关的中断控制和中断优先级控制寄存器(NVIC、SYSTICK等)也都属于...
我要评论
6
16
关闭 站长推荐上一条 /3 下一条