[an error occurred while processing this directive]
Непонятно, что я делаю не так. Работа с COM-портом, Visual C++ (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено bp 01 ноября 2005 г. 12:16

Посылает корректно, прибор отвечает максимум через секунду (на осцильнике видно).
Прога выдает, что ничего не пришло.
Вот куски кода:

!!!!!!!!!!!!!!!!
ИНИЦИАЛИЗАЦИЯ
!!!!!!!!!!!!!!!!!

DCB dcb;
HANDLE hCOM;
OVERLAPPED oCOMRead = { 0 };
OVERLAPPED oCOMWrite = { 0 };

hCOM = CreateFile( "COM2",
GENERIC_READ | GENERIC_WRITE,
0, // comm devices must be opened w/exclusive-access
NULL, // no security attributes
OPEN_EXISTING, // comm devices must use OPEN_EXISTING
FILE_FLAG_OVERLAPPED, // not overlapped I/O
NULL // hTemplate must be NULL for comm devices
);

if (hCOM == INVALID_HANDLE_VALUE)
{
printf("FATAL ERROR: INVALID_HANDLE_VALUE\n");
getch();
exit(0);
}

if (!GetCommState(hCOM, &dcb))
{
printf("FATAL ERROR: GET COMM STATE FAILED\n");
getch();
exit(0);
}

dcb.BaudRate = 115200;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;

if (!SetCommState(hCOM, &dcb))
{
printf("FATAL ERROR: SET COMM STATE FAILED\n");
getch();
exit(0);
}

oCOMWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
oCOMRead.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);


!!!!!!!!!!!!!!!!!!!!!
ПОСЫЛАЮ НЕЧТО - ВСЕ ОК
!!!!!!!!!!!!!!!!!!!!!

RS232_write_string(message, 6);


!!!!!!!!!!!!!!!!!!!!!!!
ЖДУ ОТВЕТА
!!!!!!!!!!!!!!!!!!!!!!!!!!!


BYTE buffer[128];
DWORD dwBytesRead = 0;
DWORD dwRes = 0;

printf("read file returned %d\n", ReadFile(hCOM, buffer, sizeof(buffer), &dwBytesRead, &oCOMRead) );

printf("bytes read %d\n", dwBytesRead);



dwRes = WaitForSingleObject(oCOMRead.hEvent, 2000);

printf("wait for object issued\n");


Sleep(3000);

switch(dwRes)
{
// Read completed.
case WAIT_OBJECT_0:
GetOverlappedResult(hCOM, &oCOMRead, &dwBytesRead, FALSE);
printf("Bytes read %d\n",dwBytesRead);
break;

case WAIT_TIMEOUT:

printf("ERROR: Timeout elapsed, nothing received\n");
break;

default:

printf("ERROR: Some other problems\n");
break;
}

CancelIo(hCOM);

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Выдается сообщение "Bytes Read 0"



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru