Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

глубинный простигосподи смысл функции WaitCommEvent непонятен мне

Отправлено колян безпарольный 22 мая 2009, г. 21:57


классический случай, RS-485, DE управляется через DTR.

DWORD dwMask=EV_TXEMPTY;

PurgeComm(hPort,PURGE_TXABORT|PURGE_TXCLEAR);

EscapeCommFunction(hPort,SETDTR);
Sleep(1);
WriteFile(hPort,AskBuf,AskLenght,&bc,NULL);
//ожидание окончания передачи
WaitCommEvent(hPort,&dwMask,NULL);
/*<< КОСЯК >>*/
Sleep(12);
/*<< КОНЕЦ КОСЯКА >>*/
EscapeCommFunction(hPort,CLRDTR);
//Принять пакет
PurgeComm(hPort,PURGE_RXABORT|PURGE_RXCLEAR);
a=ReadFile(hPort,AnsBuf,AnsLenght,&bc,NULL);



Таквот, выключать DTR приходится через 10 мс после того как WaitCommEvent якобы споймает то что передатчик пуст, если переключу раньше то оно передаст несколько бит уже при выключенном DE. Что за херня? Пишу тожесамое на обычных сях, просто жду пока не выставится lsr & 0x60 и никаких после этого задержек, сразу DTR выставляю.


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

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

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru