TanT 0 8 октября, 2008 Опубликовано 8 октября, 2008 · Жалоба Пробую работать с UARTом, задача передать из терминала (PCOMM, HyperTerminal и т.п.) файл. При посимвольном вводе данных с клавиатуры всё в порядке. При передачи файла UART выдаёт каждый второй символ (пример. файл: 1234567890, получаю 24680). P.S. если передовать посылки типа 123, то приходит 23, а при передаче 1234, только 24. аналогично 12345 -> 245 и 123456 -> 246 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DogPawlowa 0 8 октября, 2008 Опубликовано 8 октября, 2008 · Жалоба Пробую работать с UARTом, задача передать из терминала (PCOMM, HyperTerminal и т.п.) файл. При посимвольном вводе данных с клавиатуры всё в порядке. При передачи файла UART выдаёт каждый второй символ (пример. файл: 1234567890, получаю 24680). P.S. если передовать посылки типа 123, то приходит 23, а при передаче 1234, только 24. аналогично 12345 -> 245 и 123456 -> 246 Опрашивать нужно чаще. Или реже отправлять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TanT 0 8 октября, 2008 Опубликовано 8 октября, 2008 · Жалоба Вся идея заключалось в передаче файла в LPC используя терминалку. Скорость ставил самую малую, но всё одно :( . Как опрашивать чаще? Сейчас всё что появилось в буфере сразу выбрасывается на передачу. Но как было установленно, появляется не всё. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 8 октября, 2008 Опубликовано 8 октября, 2008 · Жалоба Сейчас всё что появилось в буфере сразу выбрасывается на передачу. Но как было установленно, появляется не всё.Показывайте код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex03 0 8 октября, 2008 Опубликовано 8 октября, 2008 · Жалоба Может читаете регистр данных дважды? В любом случае экстрасенсов нет, приведите код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TanT 0 8 октября, 2008 Опубликовано 8 октября, 2008 · Жалоба Код элементарный, while(1) { while (U0LSR_bit.DR!=0) { U0THR=U0RBR; } } в нём ошибок нет, хотя нет строчки проверки переполнения передающего буфера. Ошибка была в другом месте. Сам я ещё молод и зелен, поэтому пользуюсь для старта чужими исходниками, так вот там для регистров UART были созданы ряд структур описания битов. Заменил их (в соответствии с мануалом конфигурил) и всё заработало. Был не верно настроен регистр U0LCR управления линией. Опытным путём было доказанно, что он был законфигурён на 5М1, при настройках терминала 8N1. Побаловался с настройками в терминале - иногда паразительные варианты выдаёт без всякого мусора просто глотает байты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться