嵌入式学习笔记 - HAL_xxx_MspInit(xxx);函数

使用cubeMX生成的HAL库函数中,所有外设的初始化函数HAL_xxx_Init(&xxxHandle)中都存在有此调用函数,此调用函数其实是对各外设模块比如UART,I2C等的底层硬件初始化,包括UART时钟,以及UART用到的GPIO的工作模式以及GPIO的相应的时钟,以及串口NVIC的配置,即初始化配置各外设的底层硬件

以串口模块为例:

一 以下为串口模块句柄结构体赋值函数,最后会引用HAL_UART_Init(&UartHandle)函数将赋值给结构体句柄的参数写入串口寄存器进行配置:

二 以下为HAL_UART_Init(&UartHandle)函数内部结构,绿色部分为将赋值给结构体句柄的参数向串口寄存器进行写入的最终实现语句,而红色语句HAL_UART_MspInit(huart)函数出现在配置串口寄存器之前:

三 以下为HAL_UART_MspInit(huart)函数的内部结构,有下图可以看出,是对UART相关的时钟以及GPIO进行配置的过程,以及NVIC配置,也就是串口底层硬件配置。

相关推荐
Olrookie8 小时前
ruoyi-vue(十五)——布局设置,导航栏,侧边栏,顶部栏
前端·vue.js·笔记
使一颗心免于哀伤1 天前
《设计模式之禅》笔记摘录 - 21.状态模式
笔记·设计模式
_落纸3 天前
三大基础无源电子元件——电阻(R)、电感(L)、电容(C)
笔记
Alice-YUE3 天前
【CSS学习笔记3】css特性
前端·css·笔记·html
2303_Alpha3 天前
SpringBoot
笔记·学习
萘柰奈3 天前
Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
学习·unity
沐矢羽3 天前
Tomcat PUT方法任意写文件漏洞学习
学习·tomcat
好奇龙猫3 天前
日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(10):91-100语法+考え方13
学习
向阳花开_miemie3 天前
Android音频学习(十八)——混音流程
学习·音视频
工大一只猿3 天前
51单片机学习
嵌入式硬件·学习·51单片机