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

相关推荐
齐生13 天前
iOS 知识点 - 渲染机制、动画、卡顿小集合
笔记
用户962377954483 天前
VulnHub DC-1 靶机渗透测试笔记
笔记·测试
齐生14 天前
iOS 知识点 - IAP 是怎样的?
笔记
tingshuo29175 天前
D006 【模板】并查集
笔记
tingshuo29176 天前
S001 【模板】从前缀函数到KMP应用 字符串匹配 字符串周期
笔记
西岸行者11 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
starlaky11 天前
Django入门笔记
笔记·django
勇气要爆发11 天前
吴恩达《LangChain LLM 应用开发精读笔记》1-Introduction_介绍
笔记·langchain·吴恩达
悠哉悠哉愿意11 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
勇气要爆发11 天前
吴恩达《LangChain LLM 应用开发精读笔记》2-Models, Prompts and Parsers 模型、提示和解析器
android·笔记·langchain