I have data coming through UART interrupt to STM32F4, I need to stop receiving bytes after say 20millsec.
It was implemented using Std peripheral library, I am trying to implement the same in HAL library:
if(LoggerInterface.EOP_Timer != 0)
if(LoggerInterface.EOP_Timer == 0)
LoggerInterface.RxInterfaceEvent = 1;
void TickHandler(uint32_t data)
// Blocking Timer Handling
In the UART ISR, after every byte reception, I assign variable LoggerInterface.EOP_Timer = 20 (20 msec). The above function LoggerInterfaceEOPHandler() decrement 20 msec every 1 msec in steps.
Usually, individual bytes of a packet are received in less than 20 msec, so LoggerInterface.RxInterfaceEvent variable will not be 1.
After a packet reception, when there is no more data to come for a while, LoggerInterface.EOP_Timer become 0 and LoggerInterface.RxInterfaceEvent becomes 1 and the received packet or buffer is processed.
Could some one point how to implement this kind of operation in HAL library ?