Image
Image

花间一壶酒sd

+ 关注

粉丝 2     |     主题 101     |     回帖 1219

STM32F4 HAL库学习笔记之串口通讯
2023-10-11 20:39
  • ST MCU
  • 32
  • 1122
  这是HAL库中的串口发送函数,在标准库中串口发送只需要指定串口和数据,但是需要发送多个字节时是需要自己 ...  
  串口发送 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Siz ...  
  这个函数和上面一样是一个回调函数(用户可自定义)库中该函数的定义为弱函数,在这里进行串口数据处理,HA ...  
  void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)  
  isrflags 宏定义串口状态寄存器,cr1its控制状态寄存器,调用上面的通用函数后,会判断串口状态,是否进入U ...  
  打开这个函数,找到如下部分:  
  HAL库中定义了一个串口中断处理通用函数: void HAL_UART_IRQHandler(UART_HandleTypeDef *huart); ...  
  串口接收 编写中断服务函数 USARTX_IRQHandler  
  void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)//使能中断 void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t ...  
  串口中断 要使用中断,首先需要配置中断,由于NVIC属于MCU级别,所以放在HAL_UART_Msplnit中初始化,与库函 ...  
  这种状态就是回调函数了。 最后调用HAL_UART_Receive_IT函数开启接收中断,并设置接收缓冲以及最大接收数量 ...  
  ......  
  如果定义了USE_HAL_UART_REGISTER_CALLBACKS=1,那么用户可以自定义串口的初始化函数 ...  
  用户自定义回调函数:  
  回调函数: 函数A调用函数B的时候,通过参数将函数C的指针传递给了函数B(也就是函数B的入口参数写为函数C ...  
  _weak是定义的一个弱函数,如果用户重新定义了这个函数,那么会优先执行用户定义的函数,可以重新定义这个 ...  
  ......  
  这句前面是看用户有没有自定义回调函数,判断是否执行这个。自定义下面会写。在这里面可以执行GPIO和中断相 ...  
  执行HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)时会先调用MSP初始化回调函数进行MCU初始 ...  
  UART_HandleTypeDef 中配置串口相关设置,在HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart) ...  
2
3
近期访客