Для реализации МОДБАС на STM32 не нужно следить по прерыванию UART
за приемом байтов и перезапускать каждый раз таймер. Есть более
изящный способ: Прием данных по UART следует доверить DMA, желательно в режиме кольцевого буфера (но не обязательно).
Для обнаружения окончания МОДБАС-пакета следует настроить только прерывание UART Idle frame. И именно по нему запускать таймер. Если по окончанию интервала не будет обнаружен прием других данных, то можно считать это концом пакета.