Перейти к содержанию
    

LPC1768 беда с UART2

Не могу ничего понять. Всё прекрасно работает, но стоит написать строчку U2LCR = 0; как падаю в обработчик App_Fault_ISR.

 

Оставил минимальный код:

 

BSP_Init();
uart0_hard_init();
gsm_uart_printf_unsafe("test test test\r\n");
U2LCR = 0;
while(1);

 

Без строчки U2LCR всё работает.

 

Вот в виде ассемблера:

 

00000010   0248               LDR.N    R0,??main_0+0x4 ;; 0x4009800c
\   00000012   0021               MOVS     R1,#+0
\   00000014   0170               STRB     R1,[R0, #+0]

 

При изменении на U1LCR тоже всё ОК.

 

UPD: Вопрос снимается. Нужно сначала разрешить UART2 в PCONP. Однако реакция на команду крайне неординарная.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UPD: Вопрос снимается. Нужно сначала разрешить UART2 в PCONP. Однако реакция на команду крайне неординарная.

Аналогичная ситуация и с другими модулями - если в регистре PCONP не установлен бит включения, то при чтении-записи регистров соответствующего модуля МК сработает криво.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...