我们要开始建立我们的第一个工程.
在开始之前,请读者先从网上获取ST公司提供的STM32 固件库“stm32f10x_fw_archive v2.0 (May2009)”,然后将其解压。 首先请读者在任意一个地方建立一个空文件夹,并将其命名为“STM32_FW”。然后在STM32_FW 里新建 6 个文件夹,分别命名为“boot”、“library”、“src”、“obj”、“list”、“library”。 如下图所示:
接下来请执行如下操作: 1、在刚才解压“stm32f10x_fw_archivev2.0(May2009)”得到的文件夹里按照路径\stm32f10x_fw_archive v2.0 (May2009)\Archive,找到um0427.rar并将其解压。 2、在第1步解压到的um0427文件夹里按路径“\um0427\FWLib\project\RVMDK”找到文件:“cortexm3_macro.s”和“stm32f10x_vector.s”,并将其复制到前面所新建的“STM32_FW\boot”文件夹中。此二者为STM32 在 MDK 环境下的启动文件,是每一个 STM32工程所必需的。 3、在“\um0427\FWLib\project”中找到文件:“stm32f10x_it”和“stm32f10x_it”,并将其复制到“STM32_FW\interrupt”中。此二者包含了STM32 在 MDK 下的中断服务入口函数。 4、将“\um0427\FWLib\library”中的“inc”文件夹和“src”文件夹复制到“STM32_FW\library”中。此二文件夹为STM32 的固件函数库文件,一般情况下这两个文件夹里的文件都不推荐改动,可以设置只读属性。 5、最后请新建一个名字为“main.c”文件,放入“STM32_FW\src”中。 执行完以上操作后,应该得到如下结构: STM32_FW\boot:“cortexm3_macro.s”和“stm32f10x_vector.s”文件; STM32_FW\interrupt:“stm32f10x_it”和“stm32f10x_it”文件; STM32_FW\src:“main.c”文件; STM32_FW\library:“inc”文件夹和“src”文件夹; 建立“STM32_FW”文件夹的用意在于,它可以作为我们以后进行STM32 程序开发时候的一个目录结构。以后我们新建任何一个工程时,只要直接复制这个文件夹里面的四个文件夹就可以完成一个工程最基本的文件结构的建立了。这样可以提高我们的开发效率。 下一步,我们来真正着手建立第一个工程。 首先新建一个文件夹,笔者将其命名为“MyFirstJob”。并将“STM32_FW”中的“boot”、“library”、“src”、“obj”、“list”、“library”文件夹复制到“MyFirstJob”中。如下图所示: 
然后执行如下操作: 1、打开Keil uVision4,依次点击Project-New uVisionProject(如果当前有工程正在打开,请先执行Project-CloseProject将其关闭),弹出窗口,填写工程名和保存路径(保存在我们刚才新建的“MyFirstJob”下,命名为MyFirstJob),然后点击保存。 如下图: 
2、接着第 1 步的保存之后,弹出窗口,选择 CPU 类型。此处根据实际情况选取,作者使用的是STMicroelectronics 的 STM32F103RB 系列。如图所示,我们可以看到右侧显示了该型号 STM32器件的一些特性,比如 72MHz,128K Flash,20K SRAM……资源都是非常丰富的。 如图所示:

下图对话框:

此处是询问需不需要给工程添加STM32 的启动代码(Startup Code),记得此处点选No。 4、至此STM32的工程已经新建完毕,可以看到如下界面:

“boot”、“library”、“src”、“library”。完成后如下图所示:

(2)在 boot 上点击右键,在弹出的菜单中选择 “Add File to Group‘boot’...” ,将“MyFirstJob\boot”文件夹中的“cortexm3_macro.s”和“stm32f10x_vector.s”添加进来; (3)依照(2)的方法,给library添加“MyFirstJob\library\src”路径下的 “stm32f10x_flash.c”、 “stm32f10x_gpio.c”、“stm32f10x_lib.c”、“stm32f10x_rcc.c”四个文件; (4)给src 添加“main.c”; (5)给interrupt 添加“stm32f10x_it.c”; (6)以上操作完毕之后,应该得到如下界面(请在main.c 文件键入一个空 main 函数,如图所示): 6、右键点击Project 区的“MyFirstJob”,在弹出的菜单中选择“Option for Target ‘MyFirstJob’…”, 弹出选项配置界面,如下所示: 7、按下F7(“Build”的快捷键),进行编译。应该看到如下界面: 最下面的 Build Output 区是编译信息框,可以从中获取编译信息,如代码量,错误和警告信息等,我们可以发现此次编译结果为“0Error(s),1Warning(s)”,即“0个错误,1个警告”,而我们可以看到这个警告的解释为:“src\main.c(6):warning: #1-D: last line of file ends without anewline”,这是gcc编译器一个很常见的警告,意思是当前文件(src\main.c)并不是以一个空行结尾(至于这个空行有什么意义笔者也不清楚),读者只要在“main.c”的最后加上一个空行在编译就可以去掉这个警告了。 8、一个完整的STM32 工程至此就完成建立了。可以发现“MyFirstJob”文件夹多了几个文件,如下图所示: 可以看到KEIL MDK的工程目录是很简洁的,此处也得益于我们的obj 文件夹和 list 文件夹存放了编译所生成的大部分文件。但是此工程仍未可以用于进行 STM32的开发,原因是我们还未对 STM32 的调试开发工具进行设置,在下一节里将会有具体说明。 小结 本节介绍了 KEIL MDK 开发环境的特点以及 STM32 开发环境的建立过程,一切的 STM32开发应用都是从开发环境的搭建开始的。建议读者多多练习,尽快熟悉STM32 开发环境的建立,为学习下一节的应用程序开发流程做好准备。 ----摘自文件内容较多,在此一一谢过原创作者,本文只供技术爱好者参考,非营利性质.
|