I am starting a new project in which I have to use a RS4785 communication and this time, I'd like to do it well.
The problem is the following:
If I want to receive a frame with UART using DMA, I need to call HAL_UART_Receive_DMA function. This function needs to have the "size" parameter to know the amount of data to be received. Unfortunately, the size of data being received is unknown.
The protocol I am using is MODBUS and it assumes that an end of frame can be detected is there is a silence time (three times the delay of 1 byte) detected.
My question is the following: how can I automatically stop the reception process when this silence time is detected so that my HAL_UART_RxCpltCallback callback can be called? Is there any flow control function I can use with UART to control the DMA?