Vit (09.11.2006 12:57, просмотров: 2564)
LPC2138. TEMT в U0LSR в обработчике прерывания UART0 - не вваливаюсь Искал куда поставить
if( LSRValue & LSR_TEMT)// if Tx-FIFO and TSR is both empty
{
UART0_TxEnd = 1U;
TX0_TE_OFF(); // HalfDuplex Transceiver Transmit Off
}
Вставлял после проверки if(IIRValue == IIR_THRE)
Само туда попасть не могёт. Если поставить точку останова
на проверке этого TEMT, то после ухода последнего символа (или это просто иногда;) попасть внутрь можно...
Ставил после проверки if ( IIRValue == IIR_RLS ) - туда вааще не попадает (IERLS разрешено).
Передача по прерыванию и фунциклирует, не хочется заводить таймауты на выключение передачи...
Подсказку прошу - чего ему не хватает.
Может, кто использует этот флаг не в поллинге - поделиться сорцом/советом прошу.