Цитата(Д_М @ Mar 13 2015, 15:28)

Было замечено, что прерывание THRE возникает не при опустошении регистра хранения передатчика, а при опустошении сдвигового регистра передатчика.
Сомнительное утверждение.
Я конечно конкретно это не проверял, но у нас много устройств на разных LPC с RS-485, где после приёма THREI мониторится состояние TEMT и, после его возникновения, отключается передатчик. И все работают ок.
Цитата(Д_М @ Mar 13 2015, 15:28)

Перед начало передачи была сброшена очередь передачи и включен светодиод. В обработчике прерывания опустошения регистра хранения передатчика светодиод выключался. Как я себе представляю, когда очередь пустая, один записанный байт тут же помещается в сдвиговый регистр и начинается его передача. Очередь становится опять пустой и должно сгенерироваться прерывание опустошения регистра хранения. Если так, то мигания светодиода не наблюдалось бы, так как время между двумя событиями слишком мало. Но светодиод вспыхивает очень хорошо. Это доказывает что прерывание THRE после завершения передачи.
Не знаю про какой Вы исходник говорите, но в Вашем светодиод вроде включается после наступления события таймаута приёма. При этом все прерывания запрещаются и когда и где Вы потом опять их разрешаете не видно из исходника.
Так что мигать может как угодно и гореть как угодно долго.
И вообще - у Вас там такая каша, что трудно разобраться.
Научитесь пользоваться функциями или макросами для вкл/выкл светодиода.
И странно сначала запрещать все прерывания, а после этого считывать IIR.
PS: Ещё раз повторю - в 99.9% случаев ищите ошибку у себя, а не в чипе. А с таким кодом и во всех 100% у себя....