0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

手把手带你移植HAL库函数

信盈达 2024-05-18 08:04 次阅读

嵌入式系统开发中,硬件抽象层(HAL,Hardware Abstraction Layer)库的使用可以极大地简化开发过程,提高代码的可移植性和维护性。本文将详细介绍如何快速搞懂HAL库的移植,帮助开发者更高效地进行嵌入式开发

手把手带你移植HAL库函数

38448724-14aa-11ef-bebc-92fbcf53809c.png

HAL库提供了一套抽象接口,使开发者无需直接操作底层硬件寄存器,就能实现对硬件的控制。这种抽象使得代码能够更容易地移植到不同的硬件平台上,同时也提高了代码的可读性和可维护性。384874ce-14aa-11ef-bebc-92fbcf53809c.png在开发过程中,我们可能会遇到需要将代码从一种硬件平台移植到另一种硬件平台的情况。通过使用HAL库,可以大大简化这一过程。移植HAL库的主要好处包括:

提高代码的可移植性:避免依赖特定硬件平台,使代码可以在不同平台之间复用。


简化开发过程:减少对底层硬件细节的关注,专注于上层应用逻辑。


提高代码的稳定性:使用经过验证的HAL库可以减少硬件操作中的错误。


384d4d8c-14aa-11ef-bebc-92fbcf53809c.png本文将针对HAL库移植进行搭建分享

3851e90a-14aa-11ef-bebc-92fbcf53809c.png


下载HAL库,进入意法半导体的官网https://www.st.com/content/st_com/zh.html工具与软件->嵌入式软件->STM32微控制器软件->选择MCU和MPU包


385773f2-14aa-11ef-bebc-92fbcf53809c.png

38660bce-14aa-11ef-bebc-92fbcf53809c.png

选择对应的芯片,这里以M4系列为例

386b14b6-14aa-11ef-bebc-92fbcf53809c.png


选择包含示例的版本 386f4798-14aa-11ef-bebc-92fbcf53809c.png 移植过程:创建文件夹

387432ee-14aa-11ef-bebc-92fbcf53809c.png

将对应文件移植到对应文件夹中


387edda2-14aa-11ef-bebc-92fbcf53809c.png

将文件中的_template去掉,在文件提及到过

在HAL_inc中

3882aa7c-14aa-11ef-bebc-92fbcf53809c.png

3887c0ca-14aa-11ef-bebc-92fbcf53809c.png

在HEL_Src中

388ce758-14aa-11ef-bebc-92fbcf53809c.png

下面三个文件删除

38925170-14aa-11ef-bebc-92fbcf53809c.png

新建项目,移植文件

38a8a894-14aa-11ef-bebc-92fbcf53809c.png

38b04e78-14aa-11ef-bebc-92fbcf53809c.png

38b4662a-14aa-11ef-bebc-92fbcf53809c.png

添加文件至工程内

将文件添加到对应文件夹内


38b8409c-14aa-11ef-bebc-92fbcf53809c.png

38bc3f3a-14aa-11ef-bebc-92fbcf53809c.png

添加头文件路径


38c145f2-14aa-11ef-bebc-92fbcf53809c.png

修下载器地址

38da7270-14aa-11ef-bebc-92fbcf53809c.png

38de62c2-14aa-11ef-bebc-92fbcf53809c.png


将main.c及main.h文件内无关函数清除

38e2225e-14aa-11ef-bebc-92fbcf53809c.png

38e5cb66-14aa-11ef-bebc-92fbcf53809c.png

38ed20a0-14aa-11ef-bebc-92fbcf53809c.png

在该文件中,需要有要用的宏定义


38f18136-14aa-11ef-bebc-92fbcf53809c.png


向下走,选择本芯片型号 38f62614-14aa-11ef-bebc-92fbcf53809c.png


将宏定义定义,中间使用’,’英文逗号隔开


38fcf688-14aa-11ef-bebc-92fbcf53809c.png


勾选上编码c99


39016416-14aa-11ef-bebc-92fbcf53809c.png

点击编译


390f5044-14aa-11ef-bebc-92fbcf53809c.png


编译成功,至此移植完成

总结

通过本文的介绍,相信大家对HAL库的移植有了更清晰的认识和了解。掌握HAL库的移植技巧,不仅可以提高开发效率,还能增强代码的可移植性和稳定性。如果你觉得这篇文章对你有所帮助,请关注我们的公众号,获取更多嵌入式系统开发的干货内容!如有任何问题或建议,欢迎在下方留言与我们互动。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5067

    文章

    19008

    浏览量

    302891
  • 函数
    +关注

    关注

    3

    文章

    4303

    浏览量

    62408
  • HAL
    HAL
    +关注

    关注

    2

    文章

    70

    浏览量

    12591
收藏 人收藏

    评论

    相关推荐

    手把手教程:各类数字电源设计实例(程序+原理图)

    本资料分享了数字电源设计实例,包含程序、原理图等资料,手把手带你独立设计属于自己的数字电源。
    发表于 07-07 15:13

    手把手带你学习STM32L系列单片机(HAL库)

    参考视频是小熊派的开发板: 【STM32单片机学习】白嫖单片机教程——手把手带你学习STM32L系列单片机(HAL库)首先要知道公式:定时器时间=1/(时钟频率/预分频/计数周期)然后了解定时器
    发表于 08-09 06:22

    手把手教你学STM32单片机

    整理资料来源【正点原子】 手把手教你学STM32单片机教学视频 嵌入式 之 F103-基于新战舰V]NANO_STM32F103开发指南-HAL库版本_V1.0.pdf其它网络操作等词汇解释pin
    发表于 08-19 07:08

    手把手教你写批处理-批处理的介绍

    手把手教你写批处理-批处理的介绍
    发表于 10-25 15:02 69次下载

    美女手把手教你如何装机(中)

    美女手把手教你如何装机(中) 再来是硬碟的部份,这款机壳还不错,可以旋转支架~
    发表于 01-27 11:14 1454次阅读

    美女手把手教你如何装机(下)

    美女手把手教你如何装机(下) 接著下来就是今天的重头戏,开核萝!~
    发表于 01-27 11:16 2915次阅读

    DragonBoard 410c手把手进行安卓开发之底层移植

    DragonBoard 410c手把手进行安卓开发之底层移植的过程讲解,我还上传了很多相关资料,感兴趣的小伙伴们可以去我上传的资料页面里看看。
    发表于 06-30 15:10 7次下载

    手把手教你安装Quartus II

    本章手把手把地教你如何安装 Quartus II 软件 ,并将它激活 。此外 还有USB -Blaster下载器的驱动安装步骤 。
    发表于 09-18 14:55 9次下载

    手把手教你在家搭建监控系统

    手把手教你在家搭建监控系统
    发表于 01-17 19:47 25次下载

    手把手盘古STM32开发板移植uCOS-II教程

    手把手盘古STM32开发板移植uCOS-II教程
    发表于 10-16 09:38 22次下载

    手把手教你如何开始DSP编程

    手把手教你如何开始DSP编程。
    发表于 04-09 11:54 12次下载
    <b class='flag-5'>手把手</b>教你如何开始DSP编程

    手把手教你学LabVIEW视觉设计

    手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手
    发表于 03-06 01:41 3107次阅读

    手把手教你开关电源PCB排板

    手把手教你开关电源PCB排板(新型电源技术)-分享一下开关电源PCB排板的基本要点及分析,以及例子讲解。绝对的手把手
    发表于 09-18 12:27 57次下载
    <b class='flag-5'>手把手</b>教你开关电源PCB排板

    手把手教你移植openharmony3.0到stm32(liteos_m)

    手把手教你移植openharmony3.0到stm32(liteos_m)
    发表于 12-05 20:21 47次下载
    <b class='flag-5'>手把手</b>教你<b class='flag-5'>移植</b>openharmony3.0到stm32(liteos_m)

    手把手教你学FPGA仿真

    电子发烧友网站提供《手把手教你学FPGA仿真.pdf》资料免费下载
    发表于 10-19 09:17 2次下载
    <b class='flag-5'>手把手</b>教你学FPGA仿真