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

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

mike2007

Здравствуйте!
У меня такая проблемка, не могу отправить в 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;
}
Помогите пожалуйста, заранее спасибо.
 
S

sdriver

Пользуйся

Вот второй
 

Вложения

  • cpp_cserialport.zip
    23,7 КБ · Просмотры: 259
  • cpp_com_port.zip
    1,9 КБ · Просмотры: 260
G

gamecreator

запись/чтение файла с именем COM*, где * - номер порта
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!