stm32建立工程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 点击UVision4 project new uvision project,保存在桌面的stm32文件/user文件下(先在桌面建立stm32文件,在里面再建立user文件),取名字STM32_lession1(随意取名)。
点击保存。
2选择芯片型号:选ST公司的STM32F103VET6,有64K SRAM,512K FLASH,
接下来的窗口问我们是否拷贝STM32的启动代码到工程文件中,这份代码在M3系列中都是适用的,一般情况下我们都点是,但这里我们用的是ST的库,库文件里面也自带了这一份启动代码,所以为了保持库的完整性,我们就不需要开发环境为我们自带的启动代码了,稍后我们自己手动添加,这里点击否。
此时新建工程成功,如下:
3 在桌面的STM32文件夹下,新建四个文件夹,分别为:FWLib、CMSIM、Uotput、listing。
4 把库3.5.0/3.5.0/STM32F10X_Stdperiph_lib_V3.5.0/Libearies/STM32F10X_StdPeriph_Driver 的inc和src这两个文件夹拷贝到FWlib文件夹中。
5把库3.5.0/3.5.0/STM32F10X_Stdperiph_lib_V3.5.0/Project/STM32F10X_StdPeriph_Template 下的main.c、stm32f10x_it.h、stm32f10x_it.c、stm32f10x_conf.h、system_stm32f10x.c 拷贝到USER文件夹下。
6把库3.5.0/3.5.0/STM32F10X_Stdperiph_lib_V3.5.0/Libearies/CMSIS/CM3/DeviceSupport/ST/ STM32F10X/startup/arm下的全部文件拷贝到CMSIS/startup文件夹下。
STM32F103VET6,有512K Flash,属于大容量的,工程中把startup_stm32f10x_hd.s添加到工程文件中。
根据ST官方资料:Flash在16~32kbytes为小容量,64~128kbytes为中容量,256~512kbytes 为大容量,不同的Flash对应的启动文件不一样,这点需要注意。
7把库 3.5.0/3.5.0/STM32F10X_Stdperiph_lib_V3.5.0/Libearies/CMSIS/CM3/Core Support下的core_cm3.c和core_cm3.h拷贝到CMSIS文件夹下。
8把库3.5.0/3.5.0/STM32F10X_Stdperiph_lib_V3.5.0/Libearies/CMSIS/CM3/DeviceSupport/ST/ STM32F10X的stm32f10x.h、system_stm32f10x.c、system_stm32f10x.h拷贝到CMSIS 文件夹下。
至此,
9 回到MDK工程中,将Target改为STM32_lession1.
10 在stm32_lession1中右击add group选项,新建四个组,分别命名为startcode、user、fwlib、cmsis。
11 接下来往这些新建组中添加文件,双击那个组往那个组里面添加文件。
Startcode添加:startup_stm32f10x_hd.s、
user添加:main.c 和stm32f10x_it.c 两个文件
fwlib添加:src里面的全部驱动文件。
当然,src里面的驱动文件也可以需要那个添加那个,这里将全部添加进去是为了后续开发的方便,况且我们通过配置stm32f10x_conf.h这个头文件来选择性添加,只有在stm32f10x_conf.h文件中配置的文件才会被编译。
CMSIS里面添加:core_cm3.c和system_stm32f10x.c.
注意:这些组里面添加的都是汇编文件和C文件,头文件是不需要添加的。
最终效果如下:
至于有些有个锁的图标,是因为这些都是库文件,不需要我们修改,属性为只读,至此,我们的工程已经基本建好,下面来配置MDK的配置选项。
12
同时把Create Hex file 和Browse information这两个选项框也选上。
13 同样在Listing这个选项卡中,也点击Select Folder listings定位到模板中
的listing 文件夹下。
14 选中选项卡,在Define里面输入添加USE_STDPERIPH_DRIVER,
STM32F10X_HD 。
添加USE_STDPERIPH_DRIVER是为了屏蔽编译器的默认搜索路径,转而使用我们添加到工程中的ST 的库,添加STM32F10X_HD,是因为我们用的芯片是大容量的。
15 在Include Paths栏点击,在这里添加库文件的搜索路径,这样就可以屏蔽默认的搜索路径。
但当编译器在我们指定的路径下搜索不到的话,还是会回到标准目录去搜索,就像有些ANSIC C的库文件,如stdin.h、stdio.h.
16 修改main.c文件。
因为刚刚我们的main.c文件是从官方库里复制过来的,里面有许多的东西我们是不需要的,为了简化main.c文件,我们修改如下:
/*******************************************************************
* 文件名:main.c
*描述:用3.5.0版本建的工程模板
*实验平台:stm32f103vet
*库版本:3.5.0
作者:Tata
***************************************************************/
#include "stm32f10x.h"
int main(void)
{
while(1);
}
至此,我们的工程模板就建成了。
17 J-LINK调试:
在Debug/Setting/Flash download 中我们设置如下:
18 编译文件:Build,
19 下载程序:JLINK下载,将BOOT0拨到GND那端,
串口下载:将BOOT0拨到VCC,下载完程序后,将BOOT0开关拨到GND。
JLINK下载:
下载成功后,程序会自动运行,如果没有运行,则可按下开发板的复位键。
这里要注意的是:程序在烧写到开发板后是否自动运行,是可以在MDK开发环境:
Target Options…->Debug->Setting->Falash DownLoad中设置的:
串口下载:
选择串口、波特率、HEX文件。
点击开始编程按钮,如果下载成功则会打印出下面右边框中的信息。
到这里大功告成。