Всю эту хрень с самопридуманными флажками [как я понимаю ноги растут от st-шной spl] по-хорошему надо выкинуть, а не тиражировать
Есть стандартный автомат control транзакций - setup-data-status stages, подробно пересказанный Axelson в её книжке про usb и разжёванный до манной каши в http://www.usbmadesimple.co.uk/
Такие "намоленные" вещи как RTOS, Modbus, LCD, общеупотребительные интерфейсы, многие стараются применять в виде готовых библиотек, потому как начальство испытывает удовольствие не от твоего процесса программирования, а от продажи его результатов и поэтому не только много времени не выделяет, но еще и норовит на прочую текучку отвлечь. Тут уже не до написания полного стека (пусть и разжеванного) - подобрать бы наиболее похожий пример, да "согнуть" под себя с минимальными трудозатратами.