* 函数 HAL_DeInit 里面调用的 HAL_MspDeInit 一般在文件stm32f4xx_hal_msp.c 里面做具体实现,主要用于底层初始化,跟函数HAL_Init 里面调用的 HAL_MspInit 是一对。当前此函数也在文件stm32f4xx_hal.c里面,只是做了弱定义。 此函数的使用比较简单,需要调用的时候直接调用即可。 比如串口的初始化 1、我们要初...
MSP,全称MCU support package,函数名字找那个带有MSPInit的函数的作用是进行MCU级别硬件初始化设置,并且它们通常会被上一层的初始化函数所调用,这样做的目的是为了把MCU相关的硬件初始化剥夺出来,方便用户代码在不同型号的MCU上移植。stm32lxx_hal_msp.c文件定义了两个函数HAL_MspInit和HAL_MspDeInit。这两个函数分别...
//在stm32f4xx_hal_uart.c定义,用__weak 关键字表示废弃函数定义,在其他地方重写 __weak void ...
HAL_PPP_MspInit()和 HAL_PPP_MspDeInit** 例如:__weak void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)。在HAL_PPP_Init() 函数中被调用,用来初始化底层相关的设备(GPIOs, clock, DMA, interrupt) 2.处理完成回调函数:HAL_PPP_ProcessCpltCallback*(Process指具体某种处理,如UART的Tx),例如:__weak void...
3.在HAL_UART_MspDeInit()中添加一些与HAL_UART_MspInit相反的操作来完成UART的重置操作 对于以上的初始化操作,都可以由stm32cubemx自动生成,无需去具体配置寄存器。 而用户使用HAL库来驱动UART,在初始化好参数之后, 官方提供了三种方式 一、轮询模式(Polling mode IO operation) ...
芯片提供的串口引脚一般是不会发生变化的,所以为了方便移植,借助HAL提供的注册回调函数自定义,这边重新...
这里的意思就是说:如果你自己写一个同样的函数(HAL_UART_MspDeInit),那么,这里带有weak关键字的函数就不起作用。 还有,有朋友问:不知道工程中很多UNUSED函数是什么意思。你自己看一下注释就知道,它的为了防止编译警告,“未使用的函数”。 只要你愿意去发现问题,并解决问题,你就有收获。
HAL,英文全称Hardware Abstraction Layer,即硬件抽象层。HAL库是ST公司提供的外设驱动代码的驱动库,用户只需要调用库的API函数,便可间接配置寄存器。我们要写程序控制STM32芯片,其实最终就是控制它的寄存器,HAL库就为了更方便我们去控制寄存器,从而节约开发时间。
1.usart.c中,MX_USART1_UART_Init 调用了库的HAL_UART_Init,将结构体传递进该函数中 2.HAL_UART...
__weak void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) { /*防止未使用的参数编译警告*/ UNUSED(huart); } __weak表示弱定义,表示如果你自己定义了同名的函数就不用他,如果你没定义就使用这个弱函数。其中UNUSED函数只是为了防止未使用的参数编译警告,其实质是什么也不做。下面列举的是HAL_UART_MspInit强...