Похоже, не учитываешь FIFO передачи в 16C550(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Vit 27 ноября 2006 г. 10:14
В ответ на: Проблемка при работе с СОМ - портом... отправлено serge_mok 27 ноября 2006 г. 06:28

Получается, что функция WriteFile() записывает в FIFO(16 байт) и отваливается, а дальше нужно время. Если данных больше, то отваливается после впихивания последнего байта данных в FIFO, а это происходит не сразу. Ждать ухода последнего Stop-а нужно примерно (16+1)*(Start+Data+Parity+Stop*N)*Boudrate если длина (X) данных больше или равна 16, иначе (X+1)*(Start+Data+Parity+Stop*N)*Boudrate. И это без учёта блужданий винды. Можно попытаться рихтовать настройки порта насчёт FIFO, и это иногда помогает;), но редко кто за собой все настройки восстанавливает. Интересно, конечно, было бы попользовать флаг, о котором говорит студент прохладной жизни, но не довелось как-то встречать ничего, кроме разговоров о Toggle-чего-то-там. И не верю, что билли сделал, а линуксоиды не смогли.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
URL изображения: 
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 38:


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание