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

 
 
 
Reply to this topicStart new topic
> Проблема с 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
Dog Pawlowa
сообщение Oct 8 2008, 08:03
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(TanT @ Oct 8 2008, 10:34) *
Пробую работать с 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
TanT
сообщение Oct 8 2008, 08:27
Сообщение #3


Участник
*

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



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


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


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(TanT @ Oct 8 2008, 11:27) *
Сейчас всё что появилось в буфере сразу выбрасывается на передачу. Но как было установленно, появляется не всё.
Показывайте код.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Alex03
сообщение Oct 8 2008, 10:04
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Может читаете регистр данных дважды?
В любом случае экстрасенсов нет, приведите код.
Go to the top of the page
 
+Quote Post
TanT
сообщение Oct 8 2008, 11:46
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 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 Текстовая версия Сейчас: 19th July 2025 - 20:58
Рейтинг@Mail.ru


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