Исходная версия написана с использованием 16-битного winapi, я лишь адаптировал под 32-битный winapi и вместо прямой записи в порт использовал специально предназначенный драйвер. Алгоритмы прошивки я не трогал вообще. Сегодня еще немного модифицировал программу - тепеь ее можно скомпилировать под MSVC 2010.

К.м.к, проще написать с нуля, чем пытаться портировать под STM32.