COM! уже "рабочее" слово. Чтобы работать с COM-портом, надо создать структуру CommDCB и привязать ее к указателю на файл. Это делается через BuildCommDCB. В примере показано создание из строки в стиле MS-DOS, это есть в WinAPI, но в структуре куча полей, их можно заполнять со вкусом. Дальше открываем файл (OPENRW), и потом полученный указатель привязываем к ранее созданной структуре (hCOM DCB SetCommState API2). Все, теперь с файлом по указателю hCOM можно работать как с файлом на диске.
COM! уже "рабочее" слово. Чтобы работать с COM-портом, надо создать структуру CommDCB и привязать ее к указателю на файл. Это делается через BuildCommDCB. В примере показано создание из строки в стиле MS-DOS, это есть в WinAPI, но в структуре куча полей, их можно заполнять со вкусом. Дальше открываем файл (OPENRW), и потом полученный указатель привязываем к ранее созданной структуре (hCOM DCB SetCommState API2). Все, теперь с файлом по указателю hCOM можно работать как с файлом на диске.
Добавлено: Чт янв 19, 2012 00:24
Hishnik
Заголовок сообщения:
Re: Quark и RS232
Код:
CREATE DCB 128 ALLOT
" kernel32.dll" LOADLIBRARY VALUE hKernel hKernel " BuildCommDCBA" GETPROCADDRESS VALUE BuildCommDCB hKernel " SetCommState" GETPROCADDRESS VALUE SetCommState
" baud=115200 parity=N data=8 stop=1" DCB BuildCommDCB API2 DROP " COM7" OPENRW VALUE hCOM hCOM DCB SetCommState API2
: COM! hCOM SWAP WRITECHAR DROP DROP ;
[code]CREATE DCB 128 ALLOT
" kernel32.dll" LOADLIBRARY VALUE hKernel hKernel " BuildCommDCBA" GETPROCADDRESS VALUE BuildCommDCB hKernel " SetCommState" GETPROCADDRESS VALUE SetCommState
" baud=115200 parity=N data=8 stop=1" DCB BuildCommDCB API2 DROP " COM7" OPENRW VALUE hCOM hCOM DCB SetCommState API2