-------------------------本帖紧跟上一帖-----------------------------
(2)使用Keil MDK,建立和配置工程文件
首先打开在第二小节中手把手跟大家一起安装的Keil MDK软件。(没有安装请摸我:(大白带你重玩STM32系列(二)------开发环境搭建(安装MDK5))按照菜单项打开Project -> New uVision Project,新建一个uVision工程。得到下图中的界面。
在接下来弹出的对话框中,选择工程存放路径,MyFirstProject\Project,并给自己的工程命名。具体操作如下图所示。
点击上图中的保存(S)按钮,弹出下图所示的芯片选择窗口,由于楼主所使用的是STM32F103ZET6,因此找到ST公司,在其下的下拉菜单列表中选择STM32F103ZET类型的设备(芯片)。
选择好对应的芯片后,点击“OK”按钮。弹出以下界面。这个界面是MDK5以上的版本特有的,Manage Run -Time Environment的运行环境界面。通过这个界面我们可以快速搭建一个库函数的工程,快速配置运行环境。对这个方法如果大家觉得有必要,以后我会在“新建一个STM32固件库工程”的增帖中详细说明。在本节当中,我们暂时先选择略过。因此,对于出现的这个界面,我们点击“OK”即可。
新建工程后的界面如下图所示。
接下来我们要对工程组进行管理,现在可以点击下图所示的“组件管理”快捷按钮进入组件管理界面。
组件管理界面如下图所示。双击工程目标(Target1)和组(Source Group 1)就可以对其进行修改,选择一个组后,按“Add Files”即可添加文件。
这里对工程目标(Target1)和组(Source Group 1)进行修改,修改完成后,得到下图所示工程目录结构。
点击“OK”按钮,能够看到Keil MDK的工程窗口中出现了4个分组,如下图所示。接下来就是要添加相对应的文件到对应的分组中了。
双击一个分组,就可以进入到文件选择界面,选择相应的文件添加到改分组中。如下图所示。
所有的文件添加完毕之后,得到如下图所示结果。注:如果不确定这个工程需要用到哪些的外围设备进行开发。或者想用这个工程做通用的开发模板的话,那么在stm32lib中,可以将stm32\inc和stm32\src目录下的所有头文件和源文件复制到工程中的stm32lib分组中。
在本节的案例中,由于我们即将使用这个工程进行LED灯相关程序的开发,而简单的LED灯程序所涉及到的函数只使用到了stm32f10x_gpio.c和stm32f10x_rcc.c,因此我们只需将以上两个文件拷贝到stm32lib分组中即可。如下图所示。
接下来,对工程进行相应的配置工作。点击配置按钮(就是像小魔术师手棒形状的那个按钮)会弹出如下图所示的配置窗口。
在“Output”选项卡中,选中“Create HEX File”表示编译时要生成后缀为.hex的目标文件。HEX文件是能够下载到STM32芯片里的的编译后的二进制文件。然后再按按钮“Select Folder for Objects”,选择生成的HEX文件的存放路径。如上图所示,在这里我们选择存放在Objects文件夹下。之所以选择存放的路径,是因为编译时生成的文件不止HEX这一个文件,还包含有很多中间件,如果不分离出来,那么生成的.hex文件会混在其他生成的文件中,难以找寻。
选择好路径之后,点击OK按钮即可完成。
到这一步,我们可以发现,我们的工程里的文件数量已经很多了,那么我们在写程序的时候,怎么才能互相找到这些源文件(.c)所对应的的头文件(.h)呢?只需要在配置窗口进行简单的配置即可。操作步骤如下:
(1)重新回到配置窗口(还是点击那个小魔术师手棒图标)
(2)选择C/C++选项卡,按Include Path右边的按钮,即可设置查找路径。
如下图所示。
配置过路径之后,还需要在Define后面的输入框中输入两个宏定义:“USE_STDPERIPH_DRIVER,STM32F10X_HD”,其中“USE_STDPERIPH_DRIVER”表示的是使用库函数外设驱动,而“STM32F10X_HD”表示使用的是高密度的STM32。至此,点击OK按钮,我们的开发模板就完全设置完毕了。虽然只是设置了分组和配置,还没有开始编写任何代码,但是有了这个模板之后,再进行相关的开发就很容易了。
另外,新建一个工程,对于初学者来说,是很关键的。任何一个步骤上的不完整,都很可能导致自己的工程编译出现很多不可预知的错误。因此,这一步一定要多加练习。希望能够根据楼主的帖子,一步步的操作。切忌眼高手低。好啦,本节到此结束。
(3)建立main.c文件,编写代码
在这一步中,我们就可以开始着手编写自己的代码了。
我们将在下一讲当中详细讲述,如何使用库函数法,利用本讲当中的工程模板,完成LED灯的点亮~
大Z带你重玩STM32系列(六)------使用库函数法点亮LED彩灯