Да все получилось, после смены прошивки и изменении в myrts.c, заработал и COM2 (в программе COM3).
Но в реализации возникла проблема. Немного изменив первый пример (тот который фалом, а не на скриншотах) пытаюсь считать данные через COM2 с устройства которое генерирует 9 байт данных раз в 10 сек (одну и туже последовательность) 23 53 54 FF FF FF FF FF C5. Но в программе я считываю 11 байт 1E 78 98 1E 66 FE FE FE FE FE 66, то есть последовательность на два байта увеличивается. Причем бинарное сравнение не дает четкой картинки, например в последовательности
001000110101001101010100111111111111111111111111111111111111111111000101
0001111001111000100110000001111001100110111111101111111011111110111111101111111001100110
Пробовал принимать Гипертерминалом, все принимается правильно.
Вы пробовали не передавать, а принимать данные?
Есть идеи где грабли?
P.S. настройки порта (Пробовал на COM1 и на COM2):
Код:
comset.byParity:=0;
comset.byStopBits:=0;
comset.dwBaudRate:=9600;
comset.dwBufferSize:=20;
comset.dwScan:=0;
comset.dwTimeout:=0;
comset.Port:=COM2;
bSt:=SysComSetSettings(dwPortHandle,ADR(comset))
;
В описании:9600Бит/с, 8бит, без паритета, 1стоп бит
P.P.S. В устройстве используется упрощенный нульмодемный кабель, то есть используются только два входа на rs232 платы контроллера, а именно: вторая ножка (RD) на которую подается битовая последовательность и пятая ножка (SG) которая подключена к нулю вольт устройства. При этом пример из этого топика (переделанный под прием) выдает ошибку при запуске (см. на скриншоте).