打印
[应用相关]

STM32:HAL_xxx_Init()和HAL_xxx_MspInit()之间的区别

[复制链接]
241|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
麻花油条|  楼主 | 2024-7-26 21:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在任何STM32微控制器上使用HAL(硬件抽象库)时:
对于给定的外设,为什么必须调用HAL _... init(),以及HAL ..._ MspInit() - 为什么几个'inits'分开?

使用特权

评论回复
沙发
kzlzqi| | 2024-7-29 15:13 | 只看该作者
HAL_..._Init() 负责外设的高层次初始化,通常涉及到外设功能的配置。这部分是与硬件抽象层直接相关的,它不需要知道具体的硬件实现细节。

HAL_..._MspInit() 负责外设的底层初始化,涉及到硬件的具体设置,如GPIO配置和中断设置。这部分需要了解特定硬件的细节。

使用特权

评论回复
板凳
申小林一号| | 2024-7-29 22:49 | 只看该作者
感谢分享

使用特权

评论回复
地板
纠结的那些年| | 2024-7-31 11:57 | 只看该作者
分开初始化函数提供了灵活性。用户可以在 HAL_..._MspInit() 中添加特定硬件的初始化代码,而不必修改 HAL 库本身的代码。这使得 HAL 库能够为不同的硬件平台提供相同的高层次 API,同时允许用户根据需要配置底层硬件细节。

使用特权

评论回复
5
AdaMaYun| | 2024-7-31 12:55 | 只看该作者
各个初始化对应初始化的范围应该是不一样的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

265

主题

1412

帖子

2

粉丝