реклама на сайте
подробности

 
 
> Проблема с UART в LPC2378 в связки с терминалом
TanT
сообщение Oct 8 2008, 07:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



Пробую работать с UARTом, задача передать из терминала (PCOMM, HyperTerminal и т.п.) файл. При посимвольном вводе данных с клавиатуры всё в порядке. При передачи файла UART выдаёт каждый второй символ (пример. файл: 1234567890, получаю 24680).
P.S. если передовать посылки типа 123, то приходит 23, а при передаче 1234, только 24. аналогично 12345 -> 245 и 123456 -> 246


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
TanT
сообщение Oct 8 2008, 11:46
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 22-11-05
Из: Россия->Омск
Пользователь №: 11 210



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

while(1)
{
while (U0LSR_bit.DR!=0)
{
U0THR=U0RBR;
}
}

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


--------------------
Если вы не можете объяснить что-то шестилетнему ребенку, значит, вы сами этого не понимаете.
Альберт Эйнштейн
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 16:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016