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

相关推荐
摇滚侠18 分钟前
Vue 项目实战《尚医通》,完成确定挂号业务,笔记46
java·开发语言·javascript·vue.js·笔记
摇滚侠25 分钟前
Vue 项目实战《尚医通》,完成取消预约业务,笔记49
vue.js·笔记
Just right27 分钟前
AndroidApp笔记环境配置
笔记
月下的郁王子36 分钟前
进阶学习 PHP 中的二进制和位运算
android·学习·php
xinxingrs1 小时前
贪心算法、动态规划以及相关应用(python)
笔记·python·学习·算法·贪心算法·动态规划
sensen_kiss2 小时前
INT301 Bio-computation 生物计算(神经网络)Pt.8 主成分分析(PCA)与无监督学习
神经网络·学习·线性代数·机器学习
四谎真好看2 小时前
Java 黑马程序员学习笔记(进阶篇28)
java·笔记·学习·学习笔记
Oll Correct2 小时前
Excel基础操作(二)
笔记·excel
LFly_ice2 小时前
学习React-23-React-router
前端·学习·react.js
i***27952 小时前
【golang学习之旅】使用VScode安装配置Go开发环境
vscode·学习·golang