Посмотрите, может sscanf подойдет.
Код
if(sscanf((char const*)&gps.rx_buf[0], "$GPRMC,%*lx.%*hx,%*c,%*hx.%*hx,%*c,%*lx.%*hx,%*c,%*hx.%*hx,,%lx,%*c",
&rmc->data) == 1)
{
rmc->cource_high = 0xFFFF;
rmc->cource_low = 0xFF;
GPS_Stack_Init();
return GPS_RX_MES;
}