一、STM32_HAL库工程模版创建

目录

一、新建Template文件夹

二、在Template文件夹中新建CORE、HALLIB、OBJ、USER四个文件夹

三、新建Keil5工程

四、从官方STM32cubeF4固件包里复制一些关键文件到新建的工程文件夹

五、复制启动文件、关键头文件、源文件

六、将前面复制过来的文件加入工程中

七、编译程序,完成模版创建。


一、新建Template文件夹

二、在Template文件夹中新建CORE、HALLIB、OBJ、USER四个文件夹

三、新建Keil5工程

1、新建工程,将工程目录保存到Template中的USER 文件夹下,命名工程为Template。

2、选择STM32F407ZG,因为用的该芯片的开发板。点击OK弹出下载新组件的对话框,点击Cancel,新建完毕。

下面开看USER 文件夹中的内容。其中Template是工程文件。DebugConfig用于储存调试配置文件,Listings,Objects用来储存MDK编译过的中间文件。

四、从官方STM32cubeF4固件包里复制一些关键文件到新建的工程文件夹

1、下载方法

打开ST官网:https://www.st.com.cn/content/st_com/zh.html必须登录。

.

下载得到:

文件解压:从目录:\STM32Cube_FW_F4_Vxxx\Drivers\STM32F4xx_HAL_Driver 下面
,将其中SrcInc复制到HALLIB文件夹下。Src 存放的是 HAL 库的.c 文件, Inc 存放的是对应的.h 文件。

五、复制启动文件、关键头文件、源文件

1、打开STM32CubeF4包,打开目录:
\STM32Cube_FW_F4_V1.24.1\Drivers\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm 下面,将 文 件 startup_stm32f407xx.s 复 制 到 CORE 目 录 下 面。

2、打开目录:\STM32Cube_FW_F4_V1.24.1\Drivers\CMSIS\Include,将里面的几个头文件: cmsis_armcc.h, cmsis_armclang.h, cmsis_compiler.h, cmsis_version.h, mpu_armv7.h, core_cm4.h 同样复制到 CORE 目录下面。


3、定位到目录:\ STM32Cube_FW_F4_V1.24.1\Drivers\CMSIS\Device\ST\STM32F4xx\Include
全部3个文件stm32f4xx.h, system_stm32f4xx.h 和 stm32f407xx.h 复制到 USER 目录之下。
 

4、定位到目录:\STM32Cube_FW_F4_V1.24.1\Projects\STM32F4-Discovery\Templates,

SrcInc文件夹复制需要的文件到USER目录下。

首先我们打开Inc目录,将目录下面的3个头文件stm32f4xx_it.h, stm32f4xx_hal_conf.h 和main.h全部复制到USER 目录下面。然后我们打开 Src 目录,将下面的四个源文件 system_stm32f4xx.c, stm32f4xx_it.c, stm32f4xx_hal_msp.c 和 main.c 同样全部复制到 USER 目录下面。

5、将正点原子编写的SYSTEM文件夹复制到Template根目录下。SYSTEM文件夹主要包括时钟初始化、串口打印、延时函数等等。

到此为止工程模板所需的所有文件都已经复制完成,接下来将在MDK中将这些文件添加到工程中。

六、将前面复制过来的文件加入工程中

1、右键点击Target1,选择Manage Project Items,如下图所示。

2、将工程改为如下所示:点击OK

完成后如下所示:

3、往Groups里添加文件。

HALLIB,右键点击Template,打开工程,定位到目录:\HALLIB\Src,添加里面全部的文件。

USER添加USER目录下所有的.c文件。

CORE,添加所有文件。

SYSTEM,所有文件。

4、设置头文件存放路径

需要添加的头文件路径包括: \CORE\USER\\SYSTEM\delay \SYSTEM\usartSYSTEM\sys 以及\HALLIB\Inc

5、添加全局宏定义标识符,所谓全局宏定义标识符,就是在工程中任何地方都可见。

在 Define 输入框连输入: USE_HAL_DRIVER,STM32F407xx。

6、 选择编译中间文件编译后存放目录。

 

6、把 main.c 文件里面的内容替换为如下内容。
 

#include "sys.h"
#include "delay.h"
#include "usart.h"
/************************************************
ALIENTEK 探索者 STM32F407 开发板实验 0-1
Template 工程模板-新建工程章节使用-HAL 库版本
技术支持: www.openedv.com
淘宝店铺: http://eboard.taobao.com
关注微信公众平台微信号: "正点原子",免费获取 STM32 资料。
广州市星翼电子科技有限公司
作者:正点原子 @ALIENTEK
************************************************/
/***注意:本工程和教程中的新建工程 3.3 小节对应***/
void Delay(__IO uint32_t nCount);
void Delay(__IO uint32_t nCount)
{
while(nCount--){}
}
int main(void)
{
GPIO_InitTypeDef GPIO_Initure;
HAL_Init(); //初始化 HAL 库
Stm32_Clock_Init(336,8,2,7); //设置时钟,168Mhz
__HAL_RCC_GPIOF_CLK_ENABLE(); //开启 GPIOF 时钟
GPIO_Initure.Pin=GPIO_PIN_9|GPIO_PIN_10; //PF9,10
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
HAL_GPIO_Init(GPIOF,&GPIO_Initure);
while(1)
{
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_SET); //PF9 置 1
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_SET); //PF10 置 1
Delay(0x7FFFFF);
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET); //PF9 置 0
HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_RESET); //PF10 置 0
Delay(0x7FFFFF);
}
}

7、完成后修改Keil5设置。

从工程中移除stm32f4xx_hal_timebase_rtc_alarm_template、stm32f4xx_hal_timebase_tim_template这两个文件。

七、编译程序,完成模版创建

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值