Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UART0 в LPC2103
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
toweroff
Инициализация такая:

Код
  PINSEL0 = 0x00000005;               /* Enable RxD0 and TxD0                */
  U0LCR = 0x83;                       /* 8 bits, no Parity, 1 Stop bit       */
  U0DLL = 4;                         /* 115200 Baud Rate @ 12MHz VPB Clock    */
  U0FDR = 0x85;
  U0LCR = 0x03;                       /* DLAB = 0                            */
  U0IER = 0x03;                       /* Enable RDA and THRE interrupts      */


значения взяты из юзер мануала на камень.

В результате в терминале вижу кашу, не соответствующую передаваемым данным.
В то же время симулятор в Keil показывает нормальный бодрейт - 115384, значение соответствует мануальному.

Грешил на MAX3232, но тот в порядке, т.к. пробовал камень программить через этот порт - все ОК.

На какие грабли я мог наткнуться?
zltigo
Цитата(toweroff @ May 20 2009, 23:01) *
На какие грабли я мог наткнуться?

1. Читаем документацию о том как 16bit делитель в 8bit регистр записываеcя
2. Если хотите, что-бы Ваше творчество читали не пользуйте магические числа, которые мало кто будет расшифровывать.
Код
    // Setup the baud rate -  calculate the divisor value.
    divisor = configCPU_CLOCK_HZ / configBUS_DIVIDER / (baud * WANTED_CLOCK_SCALING);
    // Setup the divisor.
    U0LCR |= LCR_DLAB;
    U0DLL = (uchar)( divisor );
    U0DLM = (uchar)( divisor >> 8 );
    // Turn on the FIFO's and clear the buffers.
    U0FCR = (FCR_FCRE|FCR_CLEAR_FIFO);
    // Setup transmission format.
    U0LCR = (LCR_NO_PARITY|LCR_1STOP_BIT|LCR_8BIT_CHARS);
....
toweroff
Цитата(zltigo @ May 21 2009, 00:55) *
1. Читаем документацию о том как 16bit делитель в 8bit регистр записываеcя


В приведенном мною куске кода я пытался записать 16-битное число в 8-битный регистр???

Цитата(zltigo @ May 21 2009, 00:55) *
2. Если хотите, что-бы Ваше творчество читали не пользуйте магические числа, которые мало кто будет расшифровывать.


я указал в каментах что происходит.
toweroff
Проблема решилась. Техник-мандалай впаял кварц на 14.7456, а не на 12.0 МГц... Все сразу и зашевелилось

Тема закрыта
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.