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

код:
Код
#include <LPC214x.h>

void init_uart (void);
int putchar (int ch);


int main()
{


    init_uart();

    while(1)
    {
        putchar (176);
    }
}

void init_uart(void)
{

    PINSEL0 = 0x5; // make P0.0 - TxD0, P0.1 - RxD0
    U0LCR = 0x83;                                  
    U0DLL=0x14;       //CCLK=12 MHz, PCLK = CCLK/4=3 MHZ, BAUDRATE=9600
    U0LCR=0x3;
}

int putchar (int ch)                           
{                          

      if (ch == '\n')  
    {
            while (!(U0LSR & 0x20));
         U0THR = 0x0D;                              
      }
      while (!(U0LSR & 0x20));
      return (U0THR = ch);
}


использую - Tera Term Pro v2.3

поскольку в коде только putchar (176); значит передаваться всегда должен один символ,
я же вижу их аж 2: @P (картинка в посте)

что может быть неправильного в коде?
aaarrr
Цитата(AD_Wolf @ Mar 11 2008, 23:34) *
поскольку в коде только putchar (176); значит передаваться всегда должен один символ,
я же вижу их аж 2: @P (картинка в посте)

что может быть неправильного в коде?

Битовая скорость не совпадает. Это значит, что реальная скорость у Вас меньше 9600.
DASM
Ну еще может рассинхронизация быть с терминалкой. Можно паузы вставить межде байтами - поглядеть, не изменится ли чего. А реальная тут 9375 бод
Кстати VPBDIV мог быть стартапом настроен уже НЕ на /4 - лучше самому еще раз его проинитить
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.