想在STM32L4中只使用RXNE中断,但是在中断回调函数中如果不添加上HAL库自身的函数HAL_UART_IRQHandler()中断就不断的发生,已经添加了清除RXNE标志位了。不知道是哪个地方引起的中断,或者还需要增加什么操作吗?
使能中断函数:
HAL_NVIC_SetPriority(USART3_IRQn, 7, 1);
HAL_NVIC_EnableIRQ(USART3_IRQn);
__HAL_UART_ENABLE_IT(&hlpuart1,UART_IT_RXNE);
中断处理函数:
if((__HAL_UART_GET_IT(&hlpuart1, UART_IT_RXNE) != RESET) && (__HAL_UART_GET_IT_SOURCE(&hlpuart1, UART_IT_RXNE) != RESET))
{
///数据处理//
__HAL_UART_SEND_REQ(&hlpuart1, UART_RXDATA_FLUSH_REQUEST);
}
HAL_UART_IRQHandler(&hlpuart1);//如果没有这句就会一直进中断,但是不是RXNE引起的了。 |