Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запись в Com порт

2.1K
15 декабря 2002 года
kvadratik
8 / / 09.12.2002
Программка - проста невероятно. Просто открывается COM порт, далее запись и чтение. Проблемы возникают когда пытаюсь отправить строку в порт. Не получается. Пишет: "Память не может быть written".

Вот код:

DCB dcb;
COMMTIMEOUTS cto;
HANDLE hCom;
BOOL fSuccess;
char *pcCommPort = "COM3";

char *buf;
LPDWORD bNumWrite = 0, bNumRead = 0;

hCom = CreateFile(pcCommPort, GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, NULL);

if(hCom == INVALID_HANDLE_VALUE)
{
printf("Create file failed with error %d.\n", GetLastError());
return(1);
}


fSuccess = GetCommState(hCom, &dcb);

if( !fSuccess )
{
printf("GetCommState failed with error %s.\n", GetLastError());
return(2);
}

dcb.BaudRate = CBR_9600;
dcb.ByteSize = 8;
dcb.Parity = 1;
dcb.StopBits = 0;

fSuccess = SetCommState(hCom, &dcb);

if( !fSuccess )
{
printf("SetCommState failed with error %s.\n", GetLastError());
return(3);
}

cto.ReadIntervalTimeout = 200;
if( !SetCommTimeouts(hCom, &cto) )
{
printf("SetCommTimeouts failed with error %d.\n", GetLastError());
return(4);
}

if( !SetupComm(hCom, 1024, 1024) ){
printf("SetupComm failed with error %d.\n", GetLastError());
return(5);
}


buf = "";


if( !WriteFile(hCom, buf,9, bNumRead, 0) )
printf("WriteFile failed with error %d.\n", GetLastError());
if( !ReadFile(hCom, buf, 1024, bNumRead, 0) )
printf("ReadFile failed with error %d.\n", GetLastError());

printf("Number of bytes written is %d.\n", bNumWrite);


CloseHandle(hCom);

Не могу понять в чём проблема.Помогите, если можете.
2.8K
19 декабря 2002 года
Goose
5 / / 05.12.2002
Тебя не смущает, что переменная buf имеет нулевую длину, а ты в функцию WriteFile пытаешся передать 9 байт.
2.1K
19 декабря 2002 года
kvadratik
8 / / 09.12.2002
Цитата:
Originally posted by Goose
Тебя не смущает, что переменная buf имеет нулевую длину, а ты в функцию WriteFile пытаешся передать 9 байт.



Не особенно.
Пробовал и с заполненным buf, но результат один.

2.8K
20 декабря 2002 года
Goose
5 / / 05.12.2002
Попробуй выделить память явным образом по
new или char[size]. Уверен, что проблема в этом.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог