STM32HAL库不能触发USART1串口HAL_UART_RxCpltCallback回调函数的问题1-已解决

HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)

此函数为已非阻塞模式接收数据。

Hal库使用串口,需要在初始化时调用上面的函数来使能串口接收中断。例如

int main()
{
    MX_GPIO_Init();
    MX_TIM1_Init();
    MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
    HAL_TIM_Base_Start_IT(&htim1);
    HAL_UART_Receive_IT(&huart1,data_buff,1);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
    while (1)
}

注意:能够进入回调函数HAL_UART_RxCpltCallback的条件之一:

接收到的data_buff数据的大小 = 你设定的接收数据的大小1此时才能触发串口中断进入回调函数。

data_buff==1

原文地址:https://www.cnblogs.com/xiaohanxixi/p/13233838.html