Проблема в прнцепе простая: Использую в LPC2124 UART0. Проинициализировал его, настроил на использование прерываний. Написал функции приема и передачи, запускающиеся из обработчика прерываний. Так вот передача работает нормально, передается нужная посылка, состоящая из нескольких байт. А при приеме возникли проблемы. Прерывание по приему байта не генерится. Причем в том, что данные приходят на RxD сомнений нет. Может быть кто подскажет как правильно проинициализировать UART для работы и на прием и на передачу.
TUART::TUART() { PINSEL0 |= 0x05; //выбираем альтернативную функцию U0FCR = 0x07; //активируем FIFO буфер для приемника и передатчика и очищаем их U0LCR = 0x83; //8 бит без контроля четности 1 стоп-бит U0DLL = BAUDRATEDIVISOR & 0x00ffж //записываем младший байт делителя U0DLM = (BAUDRATEDIVISOR >> 8) & 0x00ff; //записываем старший байт делителя U0LCR = 0x03; U0IER = 0x03; // Rx and Tx interrupt VICIntSelect &= ~VIC_UART0_bit; // IRQ on UART0. VICVectAddr5 = (unsigned int)&UART0isr; VICVectCntl5 = 0x20|isrUART0; // Enable vector interrupt for UART0. VICIntEnable = VIC_UART0_bit; // Enable UART 0 interrupt. U0LCR_bit.DLAB = 0; }
--------------------
|