2

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

4

1 回答 1

5

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

    HAL_NVIC_SetPriority(USART1_IRQn, 0, 1);
    HAL_NVIC_EnableIRQ(USART1_IRQn);

然后加

void USART1_IRQHandler(void)
{
  HAL_UART_IRQHandler(&huart1);
}

到您的 stm32xx_it.c 文件

于 2016-03-29T15:50:05.917 回答