当前位置:文档之家› STM32基于固件库V3.5版本的工程模板建立

STM32基于固件库V3.5版本的工程模板建立

STM32基于固件库V3.5版本的工程模板建立
1、建立工程文件夹
2、Project->New uVision Project…,目录定位至工程文件夹,在工程文件夹下新建USER文件
夹(存放代码工程文件),命名工程,点击保存。

3、出现选择芯片界面(Select Device for Target ’Target 1’),由于开发板使用的是
STM32F103RCT6,选择对应芯片。

出现Manage Run-Time Environment对话框,在此可以添加自己需要的组件,从而方便构建开放环境,不过这里不用,直接点Cancel即可。

4、在工程文件夹下新建3个文件夹CORE,OBJ以及STM32F10x_FWLib。

CORE:存放核心文件和启动文件;
OBJ:存放编译过程文件以及hex文件;
STM32F10x_FWLib:存放ST官方提供的库函数源码文件。

USER:除用来放工程文件外,还用来存放主函数文件main.c,以及其他包括system_stm32f10x.c等等。

5、将官方的固件库包里的源码文件复制到工程目录文件夹下面。

打开官方固件库包,定位
到STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver,将src,inc 文件夹复制到刚才建立的STM32F10x_FWLib文件夹下。

STM32F10x_StdPeriph_Driver:存放的是STM32固件库源码文件
inc:存放的是stm32f10x_xxx.h头文件
src:存放的是stm32f10x_xxx.c格式的固件库文件
每一个.c文件和一个相应的.h文件对应。

这里的文件也是固件库的核心文件,每个外设对应一组文件。

Libraries文件夹里面的文件在建立工程的时候都会使用到。

STM32F10x_FWLib里面的函数可以根据需要添加和删除,但是一定要注意在头文件stm32f10x_conf.h文件中注释掉删除的源文件对应的头文件,这里面的文件内容用户不需要修改。

src存放的是固件库的.c文件,inc存放的是对应的.h文件。

6、将官方的固件库包里相关的启动文件复制到工程目录CORE之下。

打开官方固件库包,
定位到STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport,将core_cm3.c和core_cm3.h复制到CORE下面。

然后定位到STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\star tup\arm,由于使用的芯片为大容量芯片,所以使用startup_stm32f10x_hd.s这个启动文件,将其复制到CORE下面。

Coresupport:core_cm3.c和core_cm3.h是CMSIS核心文件,提供进入Cortex-M3内核接口,这是ARM公司提供的,对所有Cortex-M3内核的芯片都一样。

用户永远都不需要修改这个文件。

arm:存放启动文件
startup_stm32f10x_ld.s:适用于小容量产品
startup_stm32f10x_md.s:适用于中等容量产品
startup_stm32f10x_hd.s:适用于大容量产品
启动文件主要是进行堆栈之类的初始化、中断向量表以及中断函数定义。

启动文件要引导进入main函数。

7、将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x
下面的三个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h复制到USER目录之下。

然后将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 下面的四个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h复制到USER 目录下。

STM32F10x:主要存放一些启动文件以及比较基础的寄存器定义以及中断向量定义的文件。

system_stm32f10x.c和system_stm32f10x.h:设置系统以及时钟总线,这里面有一
个非常重要的SystemInit()函数,这个函数在系统启动的时候都会调用,用来设置
系统的整个时钟系统。

stm32f10x.h:相当重要,只要做STM32开发,几乎时刻都要查看这个文件相关的
定义。

打开这个文件可以看到,里面非常多的结构体以及宏定义。

这个文件里面主
要是系统寄存器定义申明以及包装内存操作。

STM32F10x_StdPeriph_Template:存放工程模板
以上,我们将需要的固件库相关文件复制到了我们的工程目录下面,下面我们将这些文件加入到我们的工程中。

8、右键点击Target1,选择Manage Components,将Target的名字改为自己要建的工程名,
然后再Groups一栏删掉一个Source Group1,建立三个Groups:USER,CORE,FWLIB。

然后点击OK。

9、下面往Group里添加所需的文件。

一、选择FWLIB,然后点击右边的ADD Files,定位到刚才建立的目录
STM32F10x_FWLib\src下面,将里面所有的文件选中(Ctrl+A),然后点击Add,然后Close。

对于我们写代码,如果只用到了其中的某个外设,就可以不用添加没有用到的外设的库文件。

例如只用GPIO,可以只用添加stm32f10x_gpio.c而其他的不用添加。

这里添加进来是为了后面方便,不用每次添加,当然这样的坏处是工程太大,编译起来速度慢,用户可以自行选择。

二、选择CORE,添加的文件为core_cm3.c,startup_stm32f10x_hd.s。

三、USER目录下要添加的文件为main.c,stm32f10x_it.c,system_stm32f10x.c。

编译文件
10、选择编译中间文件编译后存放目录。

点击魔术棒,然后选择Output->Select folder for
objects…,然后选择目录为我们上面新建的OBJ目录。

11、告诉MDK,在哪些路径之下寻找需要的头文件,也就是头文件路径。

点击魔术棒,
选择c/c++选项卡,然后点击Include Paths右边的按钮,弹出Folder Setup对话框,然后将上面的3个目录添加进去(\USER,\CORE,\STM32F10x_FWLib\inc)。

12、因为3.5版本的库函数是在配置和选择外设的时候通过宏定义来选择的,所以我们
需要配置一个全局的宏定义变量。

定位至c/c++界面,然后在Define中填写“STM32F10X_HD,USE_STDPERIPH_DRIVER”。

这样一个工程模板建立完毕。

下面还需要配置,让编译之后能够生成hex文件。

13、同样点击魔术棒,进入配置菜单,选择Output。

然后勾上下三个选项。

Create HEX file:编译生成hex文件
Brower Information:查看变量和函数定义
同时就是我们要选择生成的hex文件和项目中间文件放在哪个目录,点击“Select folder for Objects…”定位到上面建立的OBJ文件夹中。

此时,一个基于固件库V3.5的工程模板就建立了。

仿真
1、配置:魔术棒->Target,芯片型号和晶振频率8.0MHz
2、魔术棒->Debug,选择Use Simulator(使用软件仿真);Run to main()(跳过汇编代码,
直接跳转到main函数开始仿真)。

设置下方的:Dialog DLL分别为:DARMSTM.DLL和TARMSTM.DLL,Parameter均为:-pSTM32F103RC,用于设置支持STM32F103RC的软硬件仿真(即可以通过Peripherals选择对应外设的对话框观察仿真结果)。

3、点击(开始、停止仿真按钮),开始仿真。

STM32程序下载
1、配置:选择:编程后执行;编程前重装文件;DTR的低电平复位,RTS高电平进
BootLoader(也就是选项第四项,这里大家千万注意,很多用户都是这里没有选对);一般选择最高的波特率:460800,让mcuisp自动去同步。

相关主题