KEIL STM32F2xx 入门
1. 首先建立一个文件夹,为该工程的总目录
2. 在上面文件夹下面建立3个文件夹,如下图1,List、RVMDK、Src。List是编译时生成的文件;RVMDK 是工程文件;Src为所有用到的源文件。 (图1)
3. 建立工程 Project->New Project,将此处存贮在上面的RVMDk文件夹内
4. 官方库文件夹名称为stm32f2xx_stdperiph_lib,其目录下的文件夹及文件如图2。 (图2)
5. 文件夹及文件建立
5.1> 将官方下载的库文件的Libraries文件COPY到Src文件里面;
5.2> 其它库文件,比如USB等官方的库文件也拷贝到Src文件里面(在第7步需要在这儿设置库文件的 头文件包含路径),可跳过;
5.3> 再在Src文件夹建立User文件夹, User文件夹内拷贝官方下载的库文件 “\stm32f2xx_stdperiph_lib\STM32F2xx_StdPeriph_Lib_V1.0.0\Project \STM32F2xx_StdPeriph_Template”下面图3所示的5个公共文件. (图3)
5.4> 用户文件,比如uart、某个传感器的的驱动,也可以在Usr文件夹下建立自己的文件夹,此步骤为KEIL 入门之后的建立,可跳过。当建立好工程后写应用程序时再在此建立文件夹和文件。
6. 工程里面文件添加说明
6.1> 在刚才建立的工程中,如图示4(keil下的截图)建立四个文件夹: CMSIS、MDK-ARM 、STM32F2xx_StdPeriph_Driver、User。 (图4)
6.2> CMSIS文件夹添加文件:Src\Libraries\CMSIS\CM3\CoreSupport下面的C文件core_cm3.cSrc \Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx下面的C文件system_stm32f2xx.c
6.3> MDK-ARM文件夹添加文件:Src\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx\startup\arm下的文件startup_stm32f2xx.s
6.4> STM32F2xx_StdPeriph_Driver文件夹添加文件:在Src\Libraries\STM32F2xx_StdPeriph_Driver\src文件下文件如图5,(图5)
为 STM32F2xx的库文件,在使用时用到什么文件就添加什么文件。比如用到IO的库函数,就添加stm32f2xx_gpio.c,在开始时,如果不是 特别清楚,可以全部添加,保证需使用的库文件没有遗漏。为了使用库文件,需要在工程属性中的在C++选项中define中添加宏定义 USE_STDPERIPH_DRIVER,如图6所示。(图6)
6.5> User文件添加文件为第5步中图3所示的main.c,、stm32f10x_it.c, main.c为系统主函数文件.
6.6> 特殊文件说明stm32f10x_conf.h是对需要使用的, stm32f10x_conf.h是对STM32需要使用的功能选择,图7所示。
(图7)
则表示使用IO,RCC(时钟)功能,则将对应的头使能,在编译的时候就调用对应的c文件(也就是)里面的函数则不会出错.stm32f10x_it.c为中断函数入口,如果在相应的中断配置好后,则对用的中断函数则全部在这个文件.
7. 头文件路径设置。按图示,如果这儿设置不好,后边编译可能出现一些问题。工程属性中的在C++选项中的inlcude Paths后面(图8)设置头文件路径 (图8)
其中图9所示
(图9)
的最后三项为stm32f2xx的库文件所需头文件包含路径,usr为用户包含路径。每个需要包含的头文件必须在上面路径中的文件夹下。
8. 工程属性中的在Output和Listing选项中,都有一个 “Select Folder for Objects”按键,选择后,文件夹选择都选择图1中的list文件夹,这些都是编译生成的文件
9. 上面为使用STM32的库函数(不包括USB等库),用户程序则可以另外设置路径和包含路径,这样程序在不同编译器 不同CPU移植时候就简单。下面我给出我的习惯,当然也是比较可行的一种文件路径方法,主要体现在可移植性,可程序规范上。建立一个includes.h 文件放在User目录下,这includes.h文件在图9所示文件路径的第一个use文件中,可被包含。所有用户的头文件包含在这个 incluses.h文件中,这样只用每个C文件包含这个includes.h文件即可,图10为我的一个includes.h文件内容。说明:其中 TFTLCD、OV7670、UART为user文件下的三个文件,每个文件放置了对应的C文件和H文件,在移植的时候只需要将includes.h文件 包含文件夹下的h文件,所用的文件函数都可以调用。
用户442055 2013-10-9 18:37
xialaikankan
用户535020 2012-8-31 14:53
用户1660737 2012-7-12 15:56
用户420905 2012-6-21 22:12
新手,谢谢楼主分享
用户377611 2012-5-25 08:55
用户1637983 2011-12-6 16:27
初学cortex-m3,正学习中