可见,HAL 库相对于标准库多了MSP函数之后,移植性非常强,但与此同时却增加了代码量和代码的嵌套层级。可以说各有利弊。 同样,MSP 函数又可以配合句柄,达到非常强的移植性: 登录后复制voidHAL_UART_MspInit(UART_HandleTypeDef *huart); 3 Callback函数 类似于 MSP 函数,个人认为 Callback 函数主要帮助
MSP,全称MCU support package,函数名字找那个带有MSPInit的函数的作用是进行MCU级别硬件初始化设置,并且它们通常会被上一层的初始化函数所调用,这样做的目的是为了把MCU相关的硬件初始化剥夺出来,方便用户代码在不同型号的MCU上移植。stm32lxx_hal_msp.c文件定义了两个函数HAL_MspInit和HAL_MspDeInit。这两个函数分别...
HAL_MspInit函数负责对底层硬件初始化,HAL_MspDeInit函数则是对底层硬件初始化进行复位。这两个函数都是需要用户根据自己的需求去实现功能,也可以不使用。 3. HAL_InitTick ()函数 源码在253行到274行,简化函数如下: __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) { /* 配置滴答定时器1ms产生...
HAL_MspDeInit函数主要是对底层硬件初始化进行复位,和HAL_Init里面调用的HAL_MspInit函数是一对,它在stm32mp1xx_hal.c文件中有定义,只不过是弱定义,如果用户需要使用该函数,可以在用户文件中进行重写。 __weak void HAL_MspInit(void) { /* 注意:这个函数不应该修改,当需要回调时,HAL_MspInit可以在用户文件中...
HAL_PPP_MspDeInit** 例如:__weak void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)。在HAL_PPP_Init() 函数中被调用,用来初始化底层相关的设备(GPIOs, clock, DMA, interrupt) 处理完成回调函数:HAL_PPP_ProcessCpltCallback*(Process指具体某种处理,如UART的Tx),例如:__weak ...
MSP,全称MCU support package,函数名字找那个带有MSPInit的函数的作用是进行MCU级别硬件初始化设置,并且它们通常会被上一层的初始化函数所调用,这样做的目的是为了把MCU相关的硬件初始化剥夺出来,方便用户代码在不同型号的MCU上移植。stm32lxx_hal_msp.c文件定义了两个函数HAL_MspInit和HAL_MspDeInit。这两个函数分别...
HAL库下的文件很多,有一部分文件的功能可以归为一类,例如stm32mp1xx_hal_i2c.h/c、stm32mp1xx_hal_adc.h/c、stm32mp1xx_hal_dma.h/c等等这些文件,他们属于一些外设的配置文件,那么我们后面会以stm32mp1xx_hal_ppp.h/c来统称这些文件。有的是特殊文件,我们会重点介绍。HAL库关键文件介绍如下表:表...
只包含在学习过程有用到的。1.GPIO(1)HAL_GPIO_DeInit功能:这个 云汉007 2021-08-19 06:05:53 请问STM32的HAL库stm32f4xx_hal_msp.c文件函数HAL_MspInit有什么作用 STM32的HAL库中有个stm32f4xx_hal_msp.c文件,在该文件里面的函数HAL_MspInit有什么作用 潘涛12345 2018-08-16 06:49:57 ...
MSP是指和MCU相关的初始化,引用一下正点原子的解释,个人觉得说的很明白: “ 我们要初始化一个串口,首先要设置和 MCU 无关的东西,例如波特率,奇偶校验,停止位等,这些参数设置和 MCU 没有任何关系,可以使用 STM32F1,也可以是STM32F2/F3/F4/F7上的串口。而一个串口设备它需要一个 MCU 来承载,例如用 STM32F4...