2025-04-25 12:42 AM - last edited on 2025-04-25 3:25 AM by mƎALLEm
Hi all,
I use UART8 of the STM32F732VE with 921600bps.
And I want to use UART rx dma with RTO interrupt in the following sequence.
1.
__HAL_UART_ENABLE_IT(&huart8, UART_IT_RTO)//interrupt enable
2.
huart8.Instance->RTOR = 0xff00 //set timeout
3.
HAL_UART_Receive_DMA(&huart8, rx_buffer, RX_BUFFER_SIZE) //start rx dma
4.
void USART2_IRQHandler(void) { //create interrupt handler
if (__HAL_UART_GET_FLAG(&huart8, UART_FLAG_RTOF)) {
__HAL_UART_CLEAR_FLAG(&huart8, UART_CLEAR_RTOF);
HAL_UART_RxCpltCallback(&huart8);
}
}
but, no event is fired.
If use IDLE interrupt instead of RTO interrupt, it will work fine.
*The reference manual says that UART8 has RTO interrupt support.
What else can i do?
Many thanks for every piece of advice!
Han