嵌入式学习笔记 - 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配置,也就是串口底层硬件配置。

相关推荐
lichuangcsdn38 分钟前
【springcloud学习(dalston.sr1)】Eureka 客户端服务注册(含源代码)(四)
学习·spring cloud·eureka
lqjun08271 小时前
Pytorch实现常用代码笔记
人工智能·pytorch·笔记
云海听雷2 小时前
C语言中字符串函数的详细讲解
c语言·笔记·学习
wb1892 小时前
Linux远程连接服务
linux·运维·服务器·笔记
烧火大爷2 小时前
现代计算机图形学Games101入门笔记(三)
笔记
人类恶.3 小时前
C 语言学习笔记(数组)
c语言·笔记·学习
夏季疯3 小时前
学习笔记:黑马程序员JavaWeb开发教程(2025.4.7)
java·笔记·学习
小Tomkk3 小时前
2025年PMP 学习十八 第11章 项目风险管理 (11.5~11.7)
学习·项目管理·pmp
hweiyu003 小时前
C#学习教程(附电子书资料)
开发语言·学习·c#
爱做ppt的阿伟3 小时前
2025/517学习
学习