STM32HAL库MDK工程创建

前言

本文是基于正点原子新发布的HAL库学习教程的学习笔记,不明白的可以去看正点原子的视频。

HAL库获取

ST 为了方便用户开发 STM32芯片开发提供了三种库:
标准外设库 (Standard Peripheral Libraries)
HAL库(硬件抽象层):Hardware Abstraction Layer
LL库:Low Layer
目前标准库已停止维护,ST主推HAL库,使用CUBEMX生成的代码也是基于HAL库,LL库是与HAL库捆绑发布,是HAL库的轻量化版本。
我们可以在ST公司的官网获取HAL库,在官网搜索STM32Cube,找到对应的版本下载即可

HAL库文件讲解

HAL库结构

打开固件包是这样的:
来自正点原子的ppt
我们需要的文件一般都在Drivers文件夹

在这里插入图片描述
CMSIS文件夹:
在这里插入图片描述
在这里插入图片描述

重要文件讲解

以stm32f103c8t6为例

./路径/文件名描述
\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h是所有F1系列的顶层头文件,通过条件编译来包含某个芯片的头文件,定义通用的枚举类型,定义通用的宏定义(固件库没用这个)
\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h包含:中断编号定义、外设寄存器结构体类型定义、寄存器映射、寄存器位定义、外设判定。
\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\ system_stm32f1xx.c定义了系统初始化函数 SystemInit和系统时钟更新函数 SystemCoreClockUpdate
\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h定义了系统初始化函数 SystemInit和系统时钟更新函数 SystemCoreClockUpdate
\CMSIS\Device\ST\STM32F1xx\Include\startup_stm32f103xb.s中容量F103系列芯片的启动文件

HAL库文件介绍

在这里插入图片描述
ps:v1.8版本的HAL库的stm32f1xx_hal_conf.h文件为stm32f1xx_hal_conf_template.h。根据文件内描述,移植的时候重新命名为stm32f1xx_hal_conf.h即可

CMSIS文件

在固件包\Drivers\CMSIS\Core\Include\路径下,定义了一些关于编译器 、内核、架构的头文件,根据需要移植即可。
在这里插入图片描述

工程创建

创建工程文件夹

先创建一个新的工程文件夹,打开后新建如下文件夹:
在这里插入图片描述
Middlewares文件夹:该文件夹用于存放其他第三方提供的中间层代码(组件/Lib 等),
如: USMART、MALLOC、 TEXT、 FATFS、 USB、 LWIP、各种 OS、各种 GUI 等

Drivers文件夹下新建如下文件夹
在这里插入图片描述

移植HAL库

建立完文件夹后:按上一章节介绍找到在固件包对应文件,复制到相应位置。
其中
stm32f1xx.hal.conf.h
stm32f1xx_it.c
stm32f1xx_it.h
stm32f1xx_hal_msp.c // 回调函数存放文件,不用可删除
放入User文件夹,后三个个文件可以去固件包的Projects文件夹的官方例程里找,也可以把中断服务函数定义在其他位置。
前一章节五个重要文件放入CMSIS
内核文件放入CMSIS
main.c也可以定义在User文件夹
在这里插入图片描述

MDK建立工程

工程新建到Project文件夹下的MDK-ARM文件夹

工程分组

建立如下分组:
Middlewares没用到可以先不加
在这里插入图片描述
添加对应.C文件即可
ps:外设库文件按需求添加,可以加快编译速度,全添加完可能会有重复定义的函数,导致编译错误。

魔术棒配置

Target选项卡

在这里插入图片描述
晶振按实际的设置

Output选项卡

在这里插入图片描述
点上面唯一的按钮,将hex文件输出设置为Output文件夹

C/C++选项卡

在这里插入图片描述
Define:USE_HAL_DRIVER,STM32F103xE
后面那个XE表示大容量,根据实际情况去设置
打开stm32f1xx.h文件
该选项是通过条件编译来包含对应芯片的头文件
在这里插入图片描述
Include Path选项
在这里插入图片描述
添加工程文件夹内所有的头文件路径

Debug选项卡

设置对应的下载器
在这里插入图片描述
点开Setting按钮:
Debug选项,设置接口和下载速度
在这里插入图片描述
Flash Dowload选项
在这里插入图片描述
根据实际设置芯片容量,选择的Flash符合容量范围即可
例如:stm32f103c8t6 为中容量产品 flash为64k ‘
可选择如下选项
在这里插入图片描述
64k-128k为中容量:

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值