visual-studio-2010 - 使用Visual Studio 2010和C的串行通信(用

我目前面临一个小问题。我目前正在使用Microsoft Visual Studio 2010 Professional和OpenCV进行一些视频(图像)检测和跟踪,(视觉系统)的结果是通过Arduino平台控制其他硬件。

我的视觉系统代码可以100%工作,而Arduino上的代码也可以100%工作,但是我在通过C / C++从PC到Arduino板进行通信时遇到了问题。 (不能使用Visual Basic等。)

目前的规格:Windows 7平台,Visual Studio 2010,OpenCV 2.2.0,Arduino 0022,Arduino Mega开发板,2个用于仿真的USB到串行转换器。

我的代码似乎甚至没有运行。但是,我在下面的示例中使用#opc0de。但是,为了说明我的观点,下面的代码似乎不起作用(永远不要声明COM打开(是的,我更改为写入端口))。 (将两条串行电缆相互连接,分别插入两个不同的COM端口 super 终端,realterm等,可以100%正常工作。我的代码和下面的代码似乎根本不起作用)。 (我的代码长+-800行,由于COMs部分与下面的内容非常相似,所以我不希望发布内容)。我只希望串行通讯能够正常工作。

我想从COM中获得的只是发送文本字符串“x = ### y = ###”的能力,因此即使是一段简单的代码也可以做到(如下所示)(我想稍后阅读,但此刻我并不担心)

链接到代码:Stack Overflow - 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;
}

最佳答案

检查您的代码以确保其可单独运行:

首先,使用COM记录器。来自MS的老旧终端是最糟糕的,但是我现在不记得了。查看您的C++代码是否在其中发送了一些内容。如果不是,请使其工作:)如果是,请使用Arduino调试通信问题。在Arduino上创建一个简单的记录器,以查看另一端收到的内容以及处理方式。

关于visual-studio-2010 - 使用Visual Studio 2010和C的串行通信(用于Arduino),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181685/

相关文章:

eclipse - 为什么 OpenCV 中与 CvSeq 相关的一切都如此困惑?

image-processing - 读取 RGBA 图像 OpenCV

image-processing - 如何使用openCV库提取视频中的清晰轮廓

android - Android OpenCV手势识别

windows - OpenCV捕获的视频比实时运行的快吗?

android - 1 channel iplimage -> Android 位图

opencv - 是否可以使用此过程将屏幕坐标转换为相机坐标?

python - 如何转换图像以使投影图像与原始图像相同

opencv - C++ Eclipse OpenCV : . 生成了 exe 文件和二进制文件,但

iphone - openCV CvSVM::save为iPhone生成太大的文件