Преамбула.
Вчера запустил плату с LPC2364. Все задышало и заработало. Кроме UART2,3.
Амбула.
Работаем через MT-Link, IAR 4.42.
При инициализации регистры UART 2 и 3 не отзываются вообще.
Т.е. строка
U3LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
U3LCR не изменяет вообще.
Ладно, мы люди не гордые, ручками при пошаговом выполнении пытаемся прописать в U3LCR хоть что-нибудь. В ответ - U3LCR=0х00;
Попробовал в симуляторе - все функционирует
Вопрос.
Кто-нибудь запустил UART2,3 на LPC2364?
Какие здесь м.б. подводные камни?
Что делать?
PS. Полностью подпрограмма инициализации СОМ порта 3
Код
PINSEL9 |= 0x0F000000; // P4.28..29 == COM3
U3LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
Fdiv = ( Fpclk / 16 ) / baudrate; /*baud rate */
U3DLM = Fdiv / 256;
U3DLL = Fdiv % 256;
U3LCR = 0x03; /* DLAB = 0 */
U3FCR = 0x07; /* Enable and reset TX and RX FIFO. */
if ( install_irq( UART3_INT, (void *)UART3Handler, HIGHEST_PRIORITY ) == FALSE )
{
return (FALSE);
}
U3IER = IER_RBR | IER_THRE | IER_RLS; /* Enable UART0 interrupt */
return (TRUE);
С СОМ 0 такая программа работает нормально. А здесь даже регистры не отзываются.