<!--???????? ????--><!--???????? ?á??-->
第二步,建立工程,并建立条理清晰的GROUP
从这一步开始就开始和Keil MDK打交道了。首先建立一个Keil工程,这一小步再简单不过了,Project菜单项中点击New uVision Project,然后保存工程文件,路径自由设定并可以包含中文。
然后选择指定的CPU型号,如图3所示。例如选择STM32F103RB。
加注: 这之前和C51几乎一样~
接着弹出一个添加启动代码的窗口,在这里请大家点击否。因为这个启动代码是旧版本库的启动代码,新版的启动代码和这个不同,需要自己添加。所谓启动代码就是在main函数之前运行的代码。
以上的几个步骤和在Keil环境下使用51很相似,所以也不必多说。
选择CPU型号后就需要建立一个条理清晰的Group,在这里我强调的是一个“条理性”。我尽可能的把同类的文件放在一起,并取名和工程文件目录中相同的名字,这样便于管理也避免不必要的错误。在Target 1选项上右击,在弹出菜单上选择manage components,如图5所示。
建立相应的Group。例如User,CMSIS,StdPeriph_Driver和StartUP,这些Group的名称和工程文件夹的名称保持一致,如图6所示。为每个Group添加同名文件夹下的源文件或者头文件,为了便于查看代码,我把源文件和头文件都添加进Group中(除StdPeriph_Driver),在这里注意过滤文件的类型。StdPeriph_Driver中只添加需要的源文件,例如建立一个LED闪烁的工程,那么这个工程除了进行必要的初始化之外,只需要包含GPIO的操作函数,当然需要使用GPIO就必须要使能GPIO的时钟,RCC是绝对少不了的。所以只需要包含misc.c,stm32f10x_gpio.c和stm32f10x_rcc.c。需要说明的是,虽然在有些Group中包含了一些头文件,但是Keil在编译连接的时却不知道头文件在什么地方,所以一定要指定头文件的路径。添加需要的文件之后,工程目录如图7所示。
加注:上面那两个宏文件中的 USE_STDPERIPH_DRIVER,STM32F10X_MD。MD根据你选择的机种更换为LD或HD。
第三步 修改工程的Option属性
修改工程属主要目的是指定相关头文件的路径。接着上面说就是右击工程目录的LED Toggle则会出现Option选项卡,当然右击User或者其他的Group就不会出现Option选项卡,初学者极容易犯这个错误。
给Output选择一个名为Object的文件夹,当然文件夹也可以是其他任何名称。给Listing选择一个名为Listing的文件夹,当然这个文件夹也可以是其他的名称。
在C/C++选项卡下,需要输入两个非常重要的宏,一个宏是USE_STDPERIPH_DRIVER,定义了这个宏和外设有关的函数才会包括进来,还有一个宏是STM32F10X_MD,这个宏指定了CPU的容量,即中等容量的STM32。除了设定两个宏之外,还要确定和工程有关的头文件的路径。在工程目录下面除了StartUP中没有相关头文件,而其他的文件中都有头文件,所以需要逐个指定。
写到这里除了仿真的选项没有设置之外,其他的参数都设定好了,此时如果编译连接工程的话,就应该显示没有错误和没有警告。当然也会遇到有错误和有警告的情况,根据错误提示耐心地寻找错误,总可以把问题迎刃而解。
嗯,学习了!很不错的入门文章。