电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
开发板专区
【STM32F412-DISCO 开发板试用体验】+HAL库介绍&工程建立
【STM32F412-DISCO 开发板试用体验】+HAL库介绍&工程建立
开发
黄莨元
LV5工程师
| 2017-04-25 21:21:18
浏览量 1721
回复:2
发表新帖
这篇文章主要简单地介绍了
STM32
的
HAL
库的结构和如何去建立一个工程文档。
(一)
HAL
库的结构和部分文件介绍
首先
来介绍一下这几个文件夹:
①
BSP
文件夹
这个文件夹提供的是直接与开发板对接
API
,例如触摸屏,
LCD
,
SRAM
以及
EEPROM
里面包含了一个和开发板对应的文件夹(
STM32F4-Discovery
)
文件夹的内容如下图:
②
CMSIS
文件夹
顾名思义就是符合
CMSIS
标准的软件抽象层组件相关文件。文件夹内部文件比较多。主要包括
DSP
库
(DSP_LIB
文件夹
)
,
Cortex-M
内核及其设备文件(
Include
文件夹),微控制器专用头文件
/
启动代码
/
专用系统文件等
(Device
文件夹
)
。
③
STM32F4xx_HAL_Driver
文件夹
它包含了所有的
STM32F4xx
系列
HAL
库头文件和源文件,也就是所有底层硬件
抽象层
API
声明和定义。它的作用是屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数。该文件夹包含
Src
和
Inc
两个子文件夹,其中
Src
子文件夹存放的是
.c
源文件,
Inc
子文件夹存放的是与之对应的
.h
头文件。每个
.c
源文件对应一个
.h
头文件。
接下来介绍一下
HAL
库内文件包含结构以及文件的作用:(直接上图,清晰明了)
最后,我们来看看
HAL
库的各文件的包含关系:
从上面工程文件包含关系图可以看出,顶层头文件
stm32f4xx.h
直接或间接包含了其他所有工程必要头文件,所以在我们的用户代码中,我们只需要包含顶层头文件
stm32f4xx.h
即可。
(二)
建立工程文档
在上面的介绍中,大概介绍了
HAL
库的基本文件,接下来我们用
keil
开始新建一个基于
HAL
库的工程。
1.
新建一个文件夹,并在此文件夹中建立如下图的几个文件夹
注意:
SYSTEM
文件夹可以忽略,我是直接复制正点原子的。
2.
打开
keil
并且新建一个新的工程,将工程保存在
USER
文件夹
注意:要安装相应的
pack
包才能选到板子对应的芯片型号
3.
复制启动文件、内核文件、还有
API
文件,如下图所示
其中启动文件和内核的头文件保存在
CORE
文件夹中。
内核的头文件在
Cube
中的如下路径:
启动文件的路径如下:
API
文件统一放到
HALLIB
文件夹中,路径如下:
直接复制这两个文件夹,如下:
4.
复制
user
文件,如下图:
5.
打开工程,将复制的文件添加到工程里面,设置相应的头文件路径即可
添加相应的分组一一对应添加文件就可以了,分组不唯一。
下一步,配置好路径和宏定义,设置生成
HEX
文件,如下图:
6.
到这里,一个基本的工程就创建完成了,编译即可。
最后,感谢云汉电子社区和
ST
给给予了我这次评测
STM32F412G-Discovery
开发板的机会,:lol我会加油评测的。
这篇文章主要简单地介绍了
STM32
的
HAL
库的结构和如何去建立一个工程文档。
(一)
HAL
库的结构和部分文件介绍
首先
来介绍一下这几个文件夹:
①
BSP
文件夹
这个文件夹提供的是直接与开发板对接
API
,例如触摸屏,
LCD
,
SRAM
以及
EEPROM
里面包含了一个和开发板对应的文件夹(
STM32F4-Discovery
)
文件夹的内容如下图:
②
CMSIS
文件夹
顾名思义就是符合
CMSIS
标准的软件抽象层组件相关文件。文件夹内部文件比较多。主要包括
DSP
库
(DSP_LIB
文件夹
)
,
Cortex-M
内核及其设备文件(
Include
文件夹),微控制器专用头文件
/
启动代码
/
专用系统文件等
(Device
文件夹
)
。
③
STM32F4xx_HAL_Driver
文件夹
它包含了所有的
STM32F4xx
系列
HAL
库头文件和源文件,也就是所有底层硬件
抽象层
API
声明和定义。它的作用是屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数。该文件夹包含
Src
和
Inc
两个子文件夹,其中
Src
子文件夹存放的是
.c
源文件,
Inc
子文件夹存放的是与之对应的
.h
头文件。每个
.c
源文件对应一个
.h
头文件。
接下来介绍一下
HAL
库内文件包含结构以及文件的作用:(直接上图,清晰明了)
最后,我们来看看
HAL
库的各文件的包含关系:
从上面工程文件包含关系图可以看出,顶层头文件
stm32f4xx.h
直接或间接包含了其他所有工程必要头文件,所以在我们的用户代码中,我们只需要包含顶层头文件
stm32f4xx.h
即可。
(二)
建立工程文档
在上面的介绍中,大概介绍了
HAL
库的基本文件,接下来我们用
keil
开始新建一个基于
HAL
库的工程。
1.
新建一个文件夹,并在此文件夹中建立如下图的几个文件夹
注意:
SYSTEM
文件夹可以忽略,我是直接复制正点原子的。
2.
打开
keil
并且新建一个新的工程,将工程保存在
USER
文件夹
注意:要安装相应的
pack
包才能选到板子对应的芯片型号
3.
复制启动文件、内核文件、还有
API
文件,如下图所示
其中启动文件和内核的头文件保存在
CORE
文件夹中。
内核的头文件在
Cube
中的如下路径:
启动文件的路径如下:
API
文件统一放到
HALLIB
文件夹中,路径如下:
直接复制这两个文件夹,如下:
4.
复制
user
文件,如下图:
5.
打开工程,将复制的文件添加到工程里面,设置相应的头文件路径即可
添加相应的分组一一对应添加文件就可以了,分组不唯一。
下一步,配置好路径和宏定义,设置生成
HEX
文件,如下图:
6.
到这里,一个基本的工程就创建完成了,编译即可。
最后,感谢云汉电子社区和
ST
给给予了我这次评测
STM32F412G-Discovery
开发板的机会,:lol我会加油评测的。
0
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
1
15918457947
2017-04-25
:P:P加油
2
回复
举报
发布
黄莨元
回复
2017-05-01
:handshake好
0
回复
举报
发布
×
举报
举报人:
被举报人:黄莨元
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子