Почему &quot;падает&quot; передача по SPI?
Внимание вопрос — а зачем вы разрешаете прерывания модуля, если работаете через поллинг? Куда у вас уводит вектор соответствующего прерывания?
Я не работал с этим МК но вот вам из Атмеловских заначек

char* trn_word;
void Send (void)
{
        trn_word  = "Hello!"+0x00;
        while   (*trn_word != 0) 
        {
                TXBUF0  = *trn_word;
                while (!(IFG1 & UTXIFG0));
                trn_word++; 
        }
}


Кажется не ошибся, по памяти писал.