You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HAL_UART_Transmit_IT无中断触发:USART1回调及中断服务函数不执行求助

STM32 HAL库UART通信中断异常问题

异常表现

  • 开发过程中尝试实现UART通信功能
  • 发起HAL_UART_Transmit_IT中断发送操作后,HAL_UART_TxCpltCallback回调函数无法正常执行
  • 调试验证发现USART1_IRQHandler中断服务函数全程未被触发
  • 初步推断问题出在UART外设、中断使能的配置环节,无法定位具体错误位置

现有实现代码

主函数核心执行逻辑

HW_UART_Init();
uint8_t init_ment[60] = "\n\rWelcome to RF Test program\n\r";
strcpy(uart1_txbuffer, init_ment);
HAL_UART_Transmit_IT(&huart1, uart1_txbuffer, 30);
HAL_Delay(50);
InitQueue(&queue);
HAL_UART_Receive_IT(&huart1, uart1_rxbuffer, 1);
HAL_Delay(1);

UART外设初始化函数

void HW_UART_Init(void)
{
  /* USER CODE END USART1_Init 1 */
  huart1.Instance = USART1;
  huart1.Init.BaudRate = 19200;
  huart1.Init.WordLength = UART_WORDLENGTH_8B;
  huart1.Init.StopBits = UART_STOPBITS_1;
  huart1.Init.Parity = UART_PARITY_NONE;
  huart1.Init.Mode = UART_MODE_TX_RX;
  huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  if (HAL_UART_Init(&huart1) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN USART1_Init 2 */
}

待补充定位信息

为定位具体配置错误,可按需提供以下关联代码段:

  • HAL_UART_MspInit回调中实现的USART1时钟使能、GPIO引脚复用配置
  • 中断向量表内USART1_IRQHandler的函数映射关系
  • NVIC模块对USART1中断的优先级配置、使能操作代码

内容的提问来源于stack exchange,提问作者Harzarics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.24 20:45:05