在Keil MDK环境下使用STM32 V3.4库“小”教程 简介和第二步到最后一步(转)

<!--???????? ????--><!--???????? ?&aacute;??-->

d25cdf88-1d97-4df6-afab-221897b1b1c4.JPG

第二步,建立工程,并建立条理清晰的GROUP


    从这一步开始就开始和Keil MDK打交道了。首先建立一个Keil工程,这一小步再简单不过了,Project菜单项中点击New uVision Project,然后保存工程文件,路径自由设定并可以包含中文。


    然后选择指定的CPU型号,如图3所示。例如选择STM32F103RB。


72537221-3cfb-4583-9acb-2750c891237e.JPG

加注: 这之前和C51几乎一样~

62608436-5fa6-419d-bf62-0af6e3a276b6.JPG


接着弹出一个添加启动代码的窗口,在这里请大家点击否。因为这个启动代码是旧版本库的启动代码,新版的启动代码和这个不同,需要自己添加。所谓启动代码就是在main函数之前运行的代码。



以上的几个步骤和在Keil环境下使用51很相似,所以也不必多说。


    选择CPU型号后就需要建立一个条理清晰的Group,在这里我强调的是一个“条理性”。我尽可能的把同类的文件放在一起,并取名和工程文件目录中相同的名字,这样便于管理也避免不必要的错误。在Target 1选项上右击,在弹出菜单上选择manage components,如图5所示。fc8478e8-2d7d-4844-b2cf-84f9125e33c3.JPG85916333-21a6-49b1-a74a-4eb649e3ab7b.JPG


建立相应的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所示。

0b2c4327-778a-4129-ac80-38bb624f9b49.JPG

addf95f0-cb9a-46b8-b96d-7ec6c29d30a3.JPG

加注:上面那两个宏文件中的 USE_STDPERIPH_DRIVER,STM32F10X_MD。MD根据你选择的机种更换为LD或HD。

第三步 修改工程的Option属性


    修改工程属主要目的是指定相关头文件的路径。接着上面说就是右击工程目录的LED Toggle则会出现Option选项卡,当然右击User或者其他的Group就不会出现Option选项卡,初学者极容易犯这个错误。f9c0e70e-53c2-49e9-9f48-086232e9c1e3.JPGf4c81805-794e-442d-998f-cdaf6e0f838c.JPG


给Output选择一个名为Object的文件夹,当然文件夹也可以是其他任何名称。给Listing选择一个名为Listing的文件夹,当然这个文件夹也可以是其他的名称。


在C/C++选项卡下,需要输入两个非常重要的宏,一个宏是USE_STDPERIPH_DRIVER,定义了这个宏和外设有关的函数才会包括进来,还有一个宏是STM32F10X_MD,这个宏指定了CPU的容量,即中等容量的STM32。除了设定两个宏之外,还要确定和工程有关的头文件的路径。在工程目录下面除了StartUP中没有相关头文件,而其他的文件中都有头文件,所以需要逐个指定。


    写到这里除了仿真的选项没有设置之外,其他的参数都设定好了,此时如果编译连接工程的话,就应该显示没有错误和没有警告。当然也会遇到有错误和有警告的情况,根据错误提示耐心地寻找错误,总可以把问题迎刃而解。


嗯,学习了!很不错的入门文章。

猜你喜欢

转载自anlx27.iteye.com/blog/1543171