您的位置:首页 > 其它

STM32学习笔记之工程模板的建立

2016-06-19 15:49 846 查看
1、先在电脑的某个目录下建一个文件夹,名为“模板”,再在模板目录下建四个文件夹,分别为”USER”,”CORE”(存放核心文件和启动文件),”OBJ”(用来存放编译过程文件和hex烧录文件),和”FWLib”(存放ST官方提供的库函数源码文件)。其中USER目录用来放工程文件(即在KEIL软件中的点击新建工程的目录定位到USER中),以及主函数文件main.c和其它包括system_stm32f10x_c等。





2、在KEIL中新建工程时弹出第二个对话框询问是否添加启动代码到工程中(第一个对话框选择芯片类型自己选),选择“否”,因为我们使用的ST固件库文件已经包含了启动文件。



3、将官方的固件库包(我用的是stm32固件库3.5)中的源代码复制到工程目录文件夹下。复制后的每个目录文件内容如下:

FWLib文件夹:src文件夹、inc文件夹,分别存放固件库外设的.c文件和.h文件。

CORE文件夹:core_cm3.c文件(提供进入M3内核的接口,由ARM公司提供,对所有CM3内核的芯片都一样)、core_cm.h文件、startup_stm32f10x_hd.s文件(启动文件,大容量产品使用后缀hd.s,中等容量使用后缀md.s,小容量产品使用ld.s。这里的容量是指FLASH的大小,小于32K为小容量,大于64K小于128K为中等容量,大于256K为大容量)。

USER文件夹:stm32f10x.h(里面主要是系统寄存器定义申明以及包装内存操作)、system_stm32f10x.c(设置系统以及总线时钟,其中systemInit()函数在系统启动时用来调用系统的整个时钟系统)、system_stm32f10x.h、main.c、stm32f10x_conf.h(列出了引用什么文件,比如外设的头文件,若不用该文件,则须自己在MAIN函数里添加stm32f10x_adc.h等外设头文件)、stm32f10x_it.c(用来编写中断服务函数)、stm32f10x_it.h.







4、将上述文件复制到工程目录下后,右键KEIL软件中的工程Target1,选择Manage Components添加(注:头文件可不在此处添加)









5、点击KEIL界面上的魔术棒(option for Target),在“output”选项下面“select folder for objects”中选择我们最先建的OBJ目录,并勾上create HEX File。“output”选项中的Brouser Information是可以查看变量和函数定义,hex文件用来将程序烧录进开发板中执行。





在“C/C++”中“Include Path”中添加步骤4中的头文件路径,并且在“Define”中填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”.





程序的执行是从“main.c”文件开始的,其中必须包含有头文件“stm32f10x.h”,打开该文件,使用查找命令查找“USE_STDPERIPH_DRIVER”,第三次查找可以发现只有用预编译指令预定义了“USE_STDPERIPH_DRIVER”,才会将“srm32f10x_conf.h”文件包含进“stm32f10x.h”中,从而被“main.c”用到。“stm32f10x_conf.h”文件相当于一个开关文件,若要用到STM32固件库驱动标准外设,则外设驱动头文件必不可少。STM32F10X_HD可以同样查找方法来解释。

“Debug”选项中选择仿真工具Cortex_M3 J_LINK,并勾选Run to main()(不勾的话会先执行startup_stm32f10x_hd.s文件的Reset_Handler,再跳到main函数),再点击Settings Port选择SW模式,Max Clock选10MHz。



“Utilities”选项中目标编程器为Cortex-M3 J-LINK,再点击Settings,勾选Reset and Run并add芯片参数。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stm32 软件