Dein RX_index wird bei jedem Interruptaufruf auf 0 gesetzt.
Und wenn du in den else Zweig kommst, wird zwar endlich mal RX_ready aufgerufen, aber du setzt ja vorher den String auf \0

sast