1.基于固件库建立STM32F4的工程模板

发布者:悠闲自在最新更新时间:2019-08-16 来源: eefocus关键字:固件库  STM32F4  工程模板 手机看文章 扫描二维码
随时随地手机看文章

1.新建一个文件夹,命名为工程的名字(例如:STM32_Demo),在此文件夹下建立5个文件夹,分别命名为。如下图:CORE,FWLIB,OBJ,SYSTEM,USER


2.在ST官网下载最新标准固件库(STM32F4xx_DSP_StdPeriph_Lib_V1.8.0)并解压:


https://www.st.com/en/embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961


打开Keil uVision5,新建工程,选择 CPU(STM32F407ZG),点击OK后可以退出,不需要选择配套固件。


3.从解压到固件包往新建的工程(STM32_Demo)中拷贝文件:


a.将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0LibrariesSTM32F4xx_StdPeriph_Driver中的inc和src文件分别拷贝到STM32F4_TemplateFWLIB中;


b.将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0LibrariesCMSISDeviceSTSTM32F4xxSourceTemplatesarm目录下的startup_stm32f40_41xxx.s文件,将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0LibrariesCMSISInclude中的core_cm4.h和core_cmSimd.h,core_cmFunc.h,core_cmInstr.h文件均拷贝到STM32F4_TemplateCORE文件夹中;


c.将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0LibrariesCMSISDeviceSTSTM32F4xxInclude中的stm32f4xx.h和system_stm32f4xx.h共2个文件, 将STM32F4xx_DSP_StdPeriph_Lib_V1.8.0ProjectSTM32F4xx_StdPeriph_Templates中的main.c,stm32f4xx_conf.h,stm32f4xx.it.c,stm32f4xx_it.h,system_stm32f4xx.c共5个文件拷贝到STM32F4_TemplateUSER目录下:

4.在所建的工程中添加文件:


a.右键Template,打开Manage Project Items, 更改并添加文件。在FWLB中添加所有(注意删除stm32f4xx_fmc.c),在USER中添加main.c,stm32f4xx_it.c,system_stm32f4xx.c,在CORE中添加startup_stm32f40_41xxx.s。


此时点击工程左边目录,可以看到工程树结构。


b.打开Option for Target ,打开output标签,更改目标输出文件路径,选中Create HEX File。在C/C++标签中的Define中输入STM32F40_41xxx,USE_STDPERIPH_DRIVER,在Include Path中添加路径。这样软件会更改寻找头文件的路径。

c.打开main.c文件,删除原有内容,添加新的代码:


#include

 

void Delay(__IO uint32_t nCount){

while(nCount--);

}

void GPIO_Con(){

GPIO_InitTypeDef GPIO_Struct;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);

GPIO_Struct.GPIO_Pin=GPIO_Pin_9;

GPIO_Struct.GPIO_Mode=GPIO_Mode_OUT;

GPIO_Struct.GPIO_Speed=GPIO_Speed_100MHz;

GPIO_Struct.GPIO_OType=GPIO_OType_PP;

GPIO_Struct.GPIO_PuPd=GPIO_PuPd_UP;

GPIO_Init(GPIOF,&GPIO_Struct);

}

 

int main(void){

GPIO_Con();

   while(1){

GPIO_SetBits(GPIOF,GPIO_Pin_9);

Delay(1000);

GPIO_ResetBits(GPIOF,GPIO_Pin_9);

Delay(1000);

}

}

将stm32f4xx_it.c中的头文件#include "main.h"注释掉,将void SysTick_Handler(void)函数中的内容注释掉。


5.更改其他事项:


打开文件system_stm32f4xx.c,将#define PLL_M      25中的25改为8(及更改时钟频率)。打开main.c路径下的stm32f4xx.h(需编译后才能找到),将其中的#define HSE_VALUE    ((uint32_t)25000000)改为#define HSE_VALUE    ((uint32_t)8000000)。

关键字:固件库  STM32F4  工程模板 引用地址:1.基于固件库建立STM32F4的工程模板

上一篇:4.STM32F407ZG按键输入
下一篇:2.STM32F4/7点灯

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved