the serial port is frozen, when back to interrupt

Why are you turning interrupts off before calling functions that need interrupts enabled?

Why are you diddling with interrupts at all?