STM32 |
您所在的位置:网站首页 › stm32官网下载工程模板 › STM32 |
基于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
![]() 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 STM32F10x_FWLib 文件夹用来存放 ST 官方提供的库函数源码文件 (1)将STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver中的src,inc 文件夹复制到STM32F10x_FWLib文件夹中(src 存放的是固件库的.c 文件,inc 存放的是对应的.h 文件) 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文件夹中 SYSTEM文件夹存放一些已经写好的例程共用代码(大家可以从例程或我最后的工程模板中获取) (1)将SYSTEM文件夹中的sys、usart、delay三个文件夹复制到自己的SYSTEM文件夹中 (1)右键点击Target 1,再点击Manage Project ITems...,再点击删除中间框中的Source Group 1 (1)点击工具栏的“魔法棒”(Options for Target...) 如果使用我建好的工程的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 |