1 点击UVision4 projectnew uvision project,保存在桌面的stm32文件/user文件下(先在桌面建立stm32文件,在里面再建立user文件),取名字STM32_lession1(随意取名)。点击保存。
2选择芯片型号:选ST公司的STM32F103VET6,有K 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为小容量,~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
点击 Select Folder for Objects,设置编译后保存在OUTPUT文件夹下。 同时把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文件。
点击开始编程按钮,如果下载成功则会打印出下面右边框中的信息.
到这里大功告成。