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

Проблема с UART в LPC2378 в связки с терминалом

Пробую работать с UARTом, задача передать из терминала (PCOMM, HyperTerminal и т.п.) файл. При посимвольном вводе данных с клавиатуры всё в порядке. При передачи файла UART выдаёт каждый второй символ (пример. файл: 1234567890, получаю 24680).

P.S. если передовать посылки типа 123, то приходит 23, а при передаче 1234, только 24. аналогично 12345 -> 245 и 123456 -> 246

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


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

Пробую работать с UARTом, задача передать из терминала (PCOMM, HyperTerminal и т.п.) файл. При посимвольном вводе данных с клавиатуры всё в порядке. При передачи файла UART выдаёт каждый второй символ (пример. файл: 1234567890, получаю 24680).

P.S. если передовать посылки типа 123, то приходит 23, а при передаче 1234, только 24. аналогично 12345 -> 245 и 123456 -> 246

Опрашивать нужно чаще. Или реже отправлять.

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


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

Вся идея заключалось в передаче файла в LPC используя терминалку. Скорость ставил самую малую, но всё одно :( . Как опрашивать чаще? Сейчас всё что появилось в буфере сразу выбрасывается на передачу. Но как было установленно, появляется не всё.

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


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

Сейчас всё что появилось в буфере сразу выбрасывается на передачу. Но как было установленно, появляется не всё.
Показывайте код.

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


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

Может читаете регистр данных дважды?

В любом случае экстрасенсов нет, приведите код.

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


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

Код элементарный,

 

while(1)

{

while (U0LSR_bit.DR!=0)

{

U0THR=U0RBR;

}

}

 

в нём ошибок нет, хотя нет строчки проверки переполнения передающего буфера.

Ошибка была в другом месте. Сам я ещё молод и зелен, поэтому пользуюсь для старта чужими исходниками, так вот там для регистров UART были созданы ряд структур описания битов.

Заменил их (в соответствии с мануалом конфигурил) и всё заработало. Был не верно настроен регистр U0LCR управления линией. Опытным путём было доказанно, что он был законфигурён на 5М1, при настройках терминала 8N1. Побаловался с настройками в терминале - иногда паразительные варианты выдаёт без всякого мусора просто глотает байты.

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


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

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

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

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

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

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

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

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

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

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