Я думаю, что одна из ошибок gpsString += inChar;
.
Это не Python.Вы добавляете значение символа в указатель строки.
Вы должны создать буфер с максимальной длиной, вставить символ и проверить переполнение буфера.
Также i
, похоже, не будетопределены.И в C очень плохая практика использовать глобальные переменные, как вы делаете.Оставьте один i
в функции.Проверьте еще раз длину строки.
В общем, кажется, что вы используете язык, который вы не знаете достаточно для написания простых программ (манипулирование строками является базовым для C).Либо лучше изучите C, либо поищите реализацию (или просто ссылку) на языке Python библиотеки gps.