Ситуация: на COM-порт поступает 12 байт. При чтении первые, скажем, 8 читаются без проблем, девятый приходит "битым", остальные уходят куда-то "мимо".
Пример: подаем (hex): 01 01 02 02 FF FF FF FF FF 01 FF FF
Читается: 01 01 02 02 FF FF FF FF CC ........
Изменение скорости работы (9600-115.200) эффекта не приносит. Таймауты на чтение пробовал от 0 до 10000... Пользы никакой.
Примечание: при пошаговом исполнении (читаю побайтно) все проходит нормально.
Кто-нибудь может посоветовать, в каком направлении искать "грабли"?
Здравствуйте, Vertolet, Вы писали:
V>Ситуация: на COM-порт поступает 12 байт. При чтении первые, скажем, 8 читаются без проблем, девятый приходит "битым", остальные уходят куда-то "мимо". V>Пример: подаем (hex): 01 01 02 02 FF FF FF FF FF 01 FF FF V>Читается: 01 01 02 02 FF FF FF FF CC ........
V>Изменение скорости работы (9600-115.200) эффекта не приносит. Таймауты на чтение пробовал от 0 до 10000... Пользы никакой. V>Примечание: при пошаговом исполнении (читаю побайтно) все проходит нормально.
V>Кто-нибудь может посоветовать, в каком направлении искать "грабли"?
V>Заранее благодарен, Vertolet
А в каком режиме? OVERLAPPED? Хоть бы код привёл. Может не всё читаешь. Команда Read() возвращает сколько она прочитала, это число может быть меньше, чем отправлено.