claretttt 发表于 2024-8-31 15:01

stm32是用标准库还是hal库?

这两种库各有优缺点,选择哪种库取决于你的项目需求和个人偏好。标准库是适用于单片机开发的基本库,它提供了对芯片的低级访问,可以直接访问寄存器、操作系统资源、中断和固件等。标准库的代码量较小,运行速度快,适用于简单的应用程序或需要高效性能的应用。HAL库是由ST公司提供的一种高级别的库,提供了一些高级别的API函数,可以更方便地进行硬件操作。HAL库提供了更多的驱动程序和功能,使编码更加简单,可读性更好。但由于 HAL库的代码量较大,运行速度相对较慢,适用于较为复杂的应用程序。

总之,在选择库时,需要综合考虑项目需求、代码复杂度、性能要求等因素,并根据实际情况进行选择。

公羊子丹 发表于 2025-4-3 07:36

我还是喜欢用标准库,代码简洁,直接操作寄存器,感觉更有掌控感,HAL 库封装太多东西了,不习惯。

周半梅 发表于 2025-4-3 07:37

HAL 库虽然代码量大点,但移植性好,特别是不同 STM32 系列之间切换的时候,省了不少事。

帛灿灿 发表于 2025-4-3 07:37

其实如果项目不复杂,标准库够用了,HAL 适合那种外设多、驱动复杂的项目,不然写 HAL 也会有点浪费资源。

童雨竹 发表于 2025-4-3 07:38

个人感觉标准库适合做精细优化的项目,比如需要严格控制时间的场景,而 HAL 更适合快速开发。

万图 发表于 2025-4-3 07:40

如果是新手,建议用 HAL 库,毕竟封装好了很多函数,省去了不少查手册、配寄存器的时间。

Wordsworth 发表于 2025-4-3 07:40

HAL 库的劣势是封装太多,不好调试,有时候遇到问题,还是得去翻底层代码,看它到底做了啥。

Bblythe 发表于 2025-4-3 07:41

STM32F1 还可以用标准库,但 F4、H7 这些新系列基本就只有 HAL 了,看来 ST 是想推动大家用 HAL。

Pulitzer 发表于 2025-4-3 07:42

有些项目我会混用,关键部分用标准库,其他部分用 HAL,感觉这样兼顾了效率和开发速度。

Uriah 发表于 2025-4-3 07:43

HAL 库占用资源较多,但如果用的是大容量 Flash 和 RAM 的芯片,那这些就不是问题了,直接上 HAL。

Clyde011 发表于 2025-4-3 07:44

标准库虽然现在官方不更新了,但很多老项目还是用这个,维护起来方便,HAL 每次更新 API 可能会改动不少。

olivem55arlowe 发表于 2025-4-4 17:15

标准库的代码结构清晰,对寄存器操作进行了较为直观的封装。开发者可以较为容易地理解每一步操作对应的硬件行为,对于想要深入了解 STM32 硬件底层原理的人来说,是一个很好的学习工具。

robertesth 发表于 2025-4-5 20:42

HAL 库支持多种 STM32 系列芯片,具有良好的跨平台兼容性。开发者可以在不同型号的芯片之间方便地移植代码,减少了开发成本和工作量。
页: [1]
查看完整版本: stm32是用标准库还是hal库?