Еще один вариант вам покажу, без этой злосчастной функции. У вас ответы (судя по табличке, любезно предоставленной ув. @andrusha_152 ) разделяются префиксами (буквами). Тогда:
char i = 0;
if (rx_buf[i] == 'M'){
i++;
if (rx_buf[i] == '0'){
unsigned int n = getDecFromHexStr(rx_buf, i+2);
//Выводим на экран номер предыдущего трека
}else if (rx_buf[i] == '1'){
unsigned int n = getDecFromHexStr(rx_buf, i+2);
//Выводим на экран номер текущего трека
}else if (rx_buf[i] == '2'){
unsigned int n = getDecFromHexStr(rx_buf, i+2);
//Выводим на экран количество треков
}else if //и так далее
}