STM32

您所在的位置:网站首页 stm32官网下载工程模板 STM32

STM32

2024-05-27 21:21| 来源: 网络整理| 查看: 265

基于ST官方推出的固件库,我们能够更加方便地使用stm32。那么为了便于今后的开发工程,创建一个工程模板,可以避免浪费很多重复的时间。本次演示如何建立STM32F103VET6的工程模板供大家参考。在文章最后我也会分享一些自己已经建立好的工程模板,包括stm32f103ret6/vet6、stm32f407zet6,也欢迎大家继续补充分享。

目录

一、新建工程文件夹

二、创建工程

 三、添加文件

 我们先要下载官方的固件库包STM32F10x_StdPeriph_Lib_V3.5.0(我会放在文章最后)​编辑

1.CORE文件夹 

2.STM32F10x_FWLib文件 

3. OBJ文件

4.USER文件夹 

 5.SYSTEM文件夹

四、在Keil中进行配置 

1.添加文件到工程 

2.配置工程环境

3.替换一下main.c文件 

一、新建工程文件夹

首先,我们要新建一个文件夹存放我们的工程模板(我这里命名为STM32F103VET6),并在该文件夹下创建5个子文件夹,一般我会命名为USER、OBJ、STM32F10x_FWLib、SYSTEM、CORE

二、创建工程

 打开Keil,点击Project,再点击New μVison Project 

定位到刚刚创建的文件STM32F103VET6-USER,并命名为Project 选择对应芯片的型号(比如此时我就应该选择STM32F103VE),再点击OK 当然在此之前,你需要先下载对应芯片的固件库,在我之前的帖子里有f1和f4的固件库Keil5同时兼容C51和stm32的方法(win11实测有效) 出现以下页面,点击OK 此时,你应该初步创建了工程,你能看到keil中你创建的工程以及USER文件夹如下的内容 (Listings 和 Objects文件夹是 MDK 自动生成的文件夹,用于存放编译过程产生的中间文件,我们可以将其删除)

 三、添加文件  我们先要下载官方的固件库包STM32F10x_StdPeriph_Lib_V3.5.0(我会放在文章最后) 1.CORE文件夹 

CORE 用来存放核心文件和启动文件

(1)将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport中的文件core_cm3.c和core_cm3.h复制到CORE文件夹中 (2)将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\starturm中的文件startup_stm32f10x_hd.s复制到CORE文件夹中(注意不同的芯片对应选择不同的启动文件,以下方法便于理解启动文件的选择,如vet6的Flash大于128k,我就选择hd.s,如果还是不确定可以查阅资料) cl:互联型产品,stm32f105/107系列 vl:超值型产品,stm32f100系列 xl:超高密度产品,stm32f101/103系列 ld:低密度产品,FLASH小于64K md:中等密度产品,FLASH=64 or 128 hd:高密度产品,FLASH大于128

2.STM32F10x_FWLib文件 

STM32F10x_FWLib 文件夹用来存放 ST 官方提供的库函数源码文件 

(1)将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver中的src,inc 文件夹复制到STM32F10x_FWLib文件夹中(src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件)

3. OBJ文件 OBJ文件是用来存放编译过程文件以及 hex 文件   此文件夹的内容我们将在下一步进行配置,大家不要着急 4.USER文件夹 

USER文件存放工程代码文件

(1)将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x中的三个文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h复制到USER文件夹中 (2)将STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template中的四个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h复制到USER文件夹中

 5.SYSTEM文件夹

 SYSTEM文件夹存放一些已经写好的例程共用代码(大家可以从例程或我最后的工程模板中获取)

(1)将SYSTEM文件夹中的sys、usart、delay三个文件夹复制到自己的SYSTEM文件夹中

四、在Keil中进行配置  1.添加文件到工程 

(1)右键点击Target 1,再点击Manage Project ITems...,再点击删除中间框中的Source Group 1 (2)新建四个Group (3)点击USER,再点击Add Files...,将对应文件夹的三个.c文件添加进来 (4)点击CORE,再点击Add Files...,将对应文件下的两个.c\.s文件添加进来        (.s文件需要在添加文件时选择所有文件类型可见) (5)点击FWLIB,再点击Add Files...,打开对应文件夹的src文件夹将所有.c文件添加进来 (6)点击SYSTEM,再点击Add Files...,依次打开对应文件夹的三个子文件夹delay、sys、usart,将其中的delay.c、sys.c、usart.c三个文件添加进来

2.配置工程环境

(1)点击工具栏的“魔法棒”(Options for Target...) (2)点击上方的Output,勾选Create HEX File 再点击Select Folder for Objects...,并定位到OBJ文件夹 (3)点击上方的C/C++,在Define后面的框中填STM32F10X_HD,USE_STDPERIPH_DRIVER           (填入的内容和我们的启动文件有关,如果我们用MD,那就把HD换成MD) 再在下方Include Paths中添加.h文件所在的上一级文件夹

3.替换一下main.c文件 

如果使用我建好的工程的main.c,则不需要这一步,使用固件库包中的main.c,需要将以下代码替换原有代码,并敲一下回车

#include "stm32f10x.h" void Delay(u32 count) { u32 i=0; for(;iPB.5 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化 GPIOB.5 GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 输出高 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1-->PE.5 推挽输出 GPIO_Init(GPIOE, &GPIO_InitStructure); //初始化 GPIO GPIO_SetBits(GPIOE,GPIO_Pin_5); //PE.5 输出高 while(1) { GPIO_ResetBits(GPIOB,GPIO_Pin_5); GPIO_SetBits(GPIOE,GPIO_Pin_5); Delay(3000000); GPIO_SetBits(GPIOB,GPIO_Pin_5); GPIO_ResetBits(GPIOE,GPIO_Pin_5); Delay(3000000); } }

 到此为止,一个工程模板就建立好了,我们点击编译,显示没有问题就ok啦



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3