首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

4、stm32寄存器开发、标准库开发、HAL库开发不的同

大家是,我是贤弟!

以下内容是贤弟学习单片机的笔记,仅当作个人学习知识过程的总结。

STM32的开发可以通过不同的库来实现,主要包括基于寄存器的开发、基于标准库(SPL)的开发和基于HAL库的开发。以下是这三种开发方式的不同之处:

1. **基于寄存器的开发**:

 - 这是最底层的开发方式,开发者需要直接操作STM32的寄存器来实现功能。

 - 这种方式类似于51单片机的开发,执行效率最高,但因为STM32结构复杂、寄存器众多,所以不推荐使用,尤其是在开发时需要反复查询手册,非常不方便。

2. **基于标准库(SPL)的开发**:

 - 标准库是在寄存器的基础上进行了一次简单封装,主要是面向过程的嵌入式系统开发人员。

 - 库将抽象的寄存器定义成可读的字串,极大提高了代码的阅读性和开发速度。

 - 由于是上层封装,执行效率没有直接基于寄存器开发那么高,但比HAL库要高。

 - 标准库提供了通用的功能,如输入输出、内存管理等,但可能缺乏对特定硬件的直接支持,在进行底层操作时可能需要额外的编程工作。

3. **基于HAL库的开发**:

 - HAL库是ST公司目前主推的开发方式,全称为Hardware Abstraction Layer(硬件抽象层)。

 - HAL库提供了对硬件的抽象接口,简化了硬件操作,并提供了更直接的硬件访问接口。

 - 它具有很好的移植性,不同型号的STM32芯片可以使用相同的HAL库函数,只要使用的是相同的外设,程序基本可以完全复制粘贴。

 - HAL库通过图形化的配置功能,可以直接生成整个使用HAL库的工程文件,非常方便,但这也导致了它的执行效率低于标准库,因为封装得太严重,使得用户很难接触底层。

 - HAL库针对特定硬件平台,不具备通用性,可能会增加代码的复杂性,特别是在需要跨平台开发时。

总结来说,基于寄存器的开发是最接近硬件的,执行效率最高,但开发难度大;标准库提供了较好的封装,易于理解和使用,但执行效率低于寄存器开发;HAL库则提供了更好的移植性和易用性,但执行效率最低,且对底层的控制不如前两者直接。开发者可以根据项目需求和个人偏好选择合适的开发方式。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OLJc-1TxardnzG1n3FJcEhGQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券