Даю подсказку. Вы при инициализации модуля USCI разрешили
прерывание от его приемника, но где у вас функция обработки прерывания от этого источника? Вы в теле main работаете с
опросом флага готовности (правда флага передатчика), тогда зачем же разрешаете прерывание от приемника? SPI это такой интерфейс в котором передача идет одновременно с приемом. Поэтому часто бывает достаточно только одного флага/прерывания: или приемника, или передатчика.
Процедура инициализации модуля USART и USCI должна начинаться с установки бита SWRST или UCSWRST соответственно. Об этом написано во всех руководствах (User's Guide). Там же приведена последовательность команд инициализации модуля и даже с примерами. Но тем не менее, большинство начинающих игнорируют эту рекомендацию. Парадокс!
Что у вас используется в качестве ведомого устройства на SPI? Ему что, фреймовая синхронизация не нужна? И сигнала CS у него нету?
Ну и о возможной причине неработоспособности программы. Вы переводите МК в режим энергосбережения перед "суперциклом", выключая ядро. Как вы предполагаете дальнейшее выполнение программы, если ядро "спит", а какого-либо обработчика прерывания (в котором ядро можно было бы разбудить) у вас нету?