标准库移植为HAL库注意事项

1.首先将要移植的标准库.c和.h文件分别复制到HAL库文件的/Core/Inc和/Core/Src文件中

在keil5中添加.c文件,点击编译(此时有报错很正常,因为现在只是把文件移植过来)

2.在.项目中删去原有的库文件#include "stm32f10x.h",添加hal库的头文件#include "stm32f1xx_hal.h"

3.把项目中的u8改为uint8_t(我的keil5不识别u8),u16也是一样需要改。

4.将初始化配置改为hal库的配置。

标准化的配置是

hal库的配置是

5.将define内容改为hal库的形式

再次编译,应该就没问题了。

本人是新手小白,只是记录自己的学习过程,不足之处请各大佬指正!

STM32微控制器系列提供了两种主要的库选项供开发者使用:标准库Standard Library)和HAL库(Hardware Abstraction Layer)。两者在移植和代码组织上有不同。 **1. STM32标准库**: - 标准库STM32官方提供的基础软件包,它包含了低级别的驱动程序和功能模块,如串口、定时器、ADC/DAC等。使用标准库编写程序更加底层,可以直接访问硬件寄存器。 - 编程相对复杂,需要更多的硬件理解和内存管理,但能提供更高的灵活性和性能控制。 - 如果目标板上没有特殊定制或高级功能需求,移植难度一般,适合对硬件深入了解的开发人员。 **2. HAL库**: - HAL库是一个高层抽象接口,由STM32CubeMX工具自动生成,简化了对设备的操作,封装了许多底层细节。使用HAL编程,开发者可以专注于应用层逻辑,而无需关心具体硬件操作。 - HAL库提供了更易用的API,减少了出错可能性,但可能牺牲部分性能,因为它的功能通常已预先优化过。 - 对于新手或快速原型开发来说,移植更容易,因为HAL库已经处理了大部分硬件配置和中断管理等工作。 **移植过程**: - **从无库到HAL库**:如果项目开始时没有使用任何库,首先需要导入并配置相应的HAL库,然后替换原始的裸金属API调用为HAL API。 - **从HAL库标准库**:当项目规模较大,需要极致性能或需要直接访问特定硬件功能时,可能会选择将一部分HAL调用转回标准库。 - **注意事项**:移植过程中可能涉及头文件路径调整、初始化顺序变更、中断管理不同等,需仔细阅读官方文档和迁移指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值