CMSIS-Driver
CMSIS-Driver copied to clipboard
Event flags may not be reset [ESP32]
Wifi_Wait
uses osEventFlagsWait
to wait for input. The flags are set in AT_Notify
based on the received data.
The problem I have is that if there is a timeout in osEventFlagsWait
and then the data arrives later, the event flags get set by AT_Notify
. And then the next call to Wifi_Wait
returns immediately because the flags are already set, but the data is not valid. Then all the send/receive gets out of sync and the only fix it to restart the driver.
The solution is to explicitly clear the event flags in CmdSend
using osEventFlagsClear
before the command the transmitted.