В данный момент у меня небольшая проблема.В настоящее время я занимаюсь определением и отслеживанием видео (изображений) с использованием Microsoft Visual Studio 2010 Professional и OpenCV , и в результате (системы vision) осуществляется управление дополнительным оборудованием через платформу Arduino.
Мой код для системы vision работает на 100%, а код на Arduino также работает на 100%, но у меня проблема с подключением через C / C ++ от ПК к плате Arduino.(Невозможно использовать Visual Basic и т. Д.)
Технические характеристики на данный момент: платформа Windows 7, Visual Studio 2010, OpenCV 2.2.0, Arduino 0022, плата Arduino Mega, 2 x USB-последовательных преобразователя для моделирования.
Кажется, мой код не работает.Я, однако, следую приведенному ниже примеру с помощью # opc0de.Но чтобы проиллюстрировать мою точку зрения, приведенный ниже код не работает (никогда не сообщается, что COM открыт (да, я переключаюсь на порты записи)).(Подключите два последовательных кабеля друг к другу, подключенные к двум разным COM-портам: hyperterminal, realterm и т. Д. Работают на 100%. Мой код и приведенный ниже код, похоже, не работают вообще).(Мой код имеет длину + - 800 строк, и мне не хочется публиковать, так как раздел COM очень похож на приведенный ниже).Я просто хочу, чтобы последовательная коммуникация работала.
Все, что я хочу от COM, - это возможность отправлять текстовую строку, "x = ### y = ###", поэтому дажеподойдет простой фрагмент кода (как показано ниже) (я хочу прочитать на более позднем этапе, но сейчас я не беспокоюсь об этом)
Ссылка на код: Переполнение стека - opc0de
#include <Windows.h>
#include <stdio.h>
#include <conio.h>
int _tmain(int argc, _TCHAR* argv[])
{
char test[] = "Hello";
HANDLE hDevice = CreateFile(L"COM2",GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,0);
if (hDevice !=INVALID_HANDLE_VALUE)
{
printf("Port opened! \n");
DCB lpTest;
GetCommState(hDevice,&lpTest);
lpTest.BaudRate = CBR_9600;
lpTest.ByteSize = 8;
lpTest.Parity = NOPARITY;
lpTest.StopBits = ONESTOPBIT;
SetCommState(hDevice,&lpTest);
DWORD btsIO;
WriteFile(hDevice,test,strlen(test),&btsIO,NULL);
CloseHandle(hDevice);
}
_getch();
return 0;
}