概念
笔者下面需要介绍的是库寄存器和HAL库两个重要的概念,在各位看完之后,需要决定自己的学习路线到底是学习HAL呢?还是寄存器呢?还是两者都学习呢?
库寄存器
库寄存器就是简单的封装了我们对寄存器的操作,至少,不用咔咔访问结构体去嗯改里面的数据,否则开发效率会低到发指。
库寄存器的特征如下:
-
低层级:直接操作硬件寄存器,代码与硬件紧密相关。
-
高效:由于直接操作寄存器,代码执行效率高,资源占用少。
-
灵活性:我们可以完全控制硬件的每一个细节。但是代价是 —— 需要深入了解硬件手册和寄存器配置,开发难度较大。
-
可移植性差:代码高度依赖特定硬件,移植到其他平台时需大量修改。
库寄存器的优秀的教学视频自然就属于江科大了STM32入门教程-2023版 细致讲解 中文字幕哔哩哔哩bilibili
HAL库
HAL库是STMicroelectronics为STM32系列微控制器提供的一个硬件抽象层库。使用HAL库可以让我们无缝的移植代码到其他ST家的平台上,它封装了底层寄存器的操作,提供了统一的API接口,简化了开发过程。
-
高层级:通过API接口操作硬件,开发者无需直接操作寄存器。
-
易用性:提供了丰富的函数库,简化了外设的配置和控制。
-
可移植性:代码在不同STM32系列间的移植性较好。
-
效率较低:由于增加了抽象层,代码执行效率相对较低,资源占用较多。
-
开发速度快:适合快速开发和原型设计。
HAL库的教程,笔者建议是Keysking的教程,他的教学非常的顶层,基本原理是使用动画演示,非常的直观:
【STM32入门教程-2024】第2集 点灯大师 点亮你的第一颗小灯 | keysking的stm32教程哔哩哔哩bilibili
当然,其他的开发板的供应商,比如说野火/正点原子的视频也是不错的,这里就自行搜索吧!