Работа с Com-портом

  • Автор темы mike2007
  • Дата начала
M

mike2007

#1
Здравствуйте!
У меня такая проблемка, не могу отправить в COM-порт и считать символы с него. Можете дать ссылочку на информацию по работе с COM-портом.
Вот програмка:
Код:
int SendCom(void)
{
HANDLE ComHandle;
COMMCONFIG ComCfg, *lpComCfg=NULL;
COMSTAT *lpComStat=NULL;
//COMMTIMEOUTS ComTimeout, *lpComTimeout;
//DCB ComDcb, *lpComDcb;
//OVERLAPPED *lpOverlapped;
DWORD ComError;
DWORD lpSize;
DWORD nByteToWr=0, nByteOfWritten=0;


BOOL err;

char wBuff[5]={1,2,9,8,7};//, *lpBuff;
char rBuff[5]={0,0,0,0,0};

//lpBuff = Buff;

ComHandle = CreateFile(
"COM2",
GENERIC_READ || GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL || FILE_FLAG_OVERLAPPED,
NULL
);
if (ComHandle == INVALID_HANDLE_VALUE)
{
return 1;
}
lpComCfg = (COMMCONFIG *) malloc(sizeof(COMMCONFIG));

GetCommConfig(ComHandle,lpComCfg, &lpSize);

ComCfg = *lpComCfg;

ComCfg.wVersion = 1;
ComCfg.dwProviderSubType = PST_RS232;
ComCfg.dcb.BaudRate = 9600;
ComCfg.dcb.ByteSize = 8;
ComCfg.dcb.DCBlength = 28;
ComCfg.dcb.Parity = 0;
ComCfg.dcb.StopBits = 0;

SetCommConfig(ComHandle, &ComCfg, sizeof(COMMCONFIG));

lpComStat = (COMSTAT *) malloc(sizeof(COMSTAT));
ClearCommError(ComHandle, &ComError, lpComStat);

nByteToWr = 3;
err = WriteFile(ComHandle, &wBuff, nByteToWr, &nByteOfWritten, NULL);
ErrorR();
//*********************************************
// Вот здесь выводится ошибка "Отказано в доступе"
//*********************************************
nByteOfWritten = 0;

ClearCommError(ComHandle, &ComError, lpComStat);

nByteToWr = 3;
ReadFile(ComHandle, &rBuff, nByteToWr, &nByteOfWritten, NULL);
nByteOfWritten = 0;

CloseHandle(ComHandle);
return 0;
}
Помогите пожалуйста, заранее спасибо.
 
G

gamecreator

#3
запись/чтение файла с именем COM*, где * - номер порта