未生成STM32 HAL UART RXNE中断

VIP*_*PER 2 hal interrupt stm32 uart

我正在使用HAL驱动程序和CubeMX生成的代码.在我打电话的主要例程中HAL_UART_Receive_IT().通过UART传输数据(以环回方式连接)后,我可以看到模块正在接收字节并在寄存器中设置RXNE位.但是没有产生中断?我无法解释为什么......在HAL_UART_Receive_IT()函数中有代码启用中断,所以有什么问题?

小智 5

您没有在问题中提供足够的信息和代码.无论如何,在你的stm32xx_hal_msp.c文件中,你从硬件的角度初始化你的外设:一定要启用中断

    HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);
    HAL_NVIC_EnableIRQ(USART1_IRQn);
Run Code Online (Sandbox Code Playgroud)

然后加

void USART1_IRQHandler(void)
{
  HAL_UART_IRQHandler(&huart1);
}
Run Code Online (Sandbox Code Playgroud)

到你的stm32xx_it.c文件