题目太大了。我提几个建议:
测试我倒有个法子:用串口线连接Com1,Com2。用两个程序,一个接受,一个发送。不就可以了。
编程的话,请参考《Windows95 通信编程》,里面有详细的例子。你可以发邮件给我,
有些问题我还是能回答的。
可以给我分吗?

解决方案 »

  1.   

    我这里到有一点关于串口API的中文资料,如需要可以发给你。
    另外你可以看看MSDN中关于串口的经典程序TTY的例子,
    相信会对你有所帮助。
      

  2.   

    hComm=CreateFile(port, GENERIC_READ and GENERIC_WRITE,0, NULL,    OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL and FILE_FLAG_OVERLAPPED,NULL);
    hComm是串行口的句柄,PORT可以直接设置成"COM1"或者COM2等
    其他的参数可以参照MSDN里的说明
    WRITEFILE()的用法是一样的
      

  3.   

    谢谢你们的回答,tonyhan,如果能得到你的资料我将万分感激。
      

  4.   

    我有一个串口类,需要着可与我联系,E_mail :[email protected] ,有一个条件,你用后要有反馈信息,如果修改过请把修改过的代码给我
      

  5.   

    www.codetools.com have serial communication class 
      

  6.   

    ....HANDLE hModem;
    ....DCBdcb;
    COMMTIMEOUTS timeouts;
    char szComName[32]; sprintf(szComName,"COM%1d",nComNo);
    hModem = CreateFile(szComName,GENERIC_READ and GENERIC_WRITE,
    0, 0, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0); if(hModem != INVALID_HANDLE_VALUE){
    if(!GetCommState(hModem, &dcb))goto _open_err;
    dcb.BaudRate = 38400;//115200;//38400;
    dcb.ByteSize = 8;
    dcb.Parity = NOPARITY;
    dcb.StopBits = ONESTOPBIT; // Apply the new comm port settings
    if (!SetCommState(hModem,&dcb))goto _open_err; // Change the ReadIntervalTimeout so that
    // ReadFile will return immediately. See help file
    timeouts.ReadIntervalTimeout = MAXDWORD; 
    timeouts.ReadTotalTimeoutMultiplier = 0;
    timeouts.ReadTotalTimeoutConstant = 0;
    timeouts.WriteTotalTimeoutMultiplier = 0;
    timeouts.WriteTotalTimeoutConstant = 0;
    SetCommTimeouts(hModem, &timeouts ); // Set the Data Terminal Ready line
    EscapeCommFunction(hModem, SETDTR);
    // Send an "at" command to the modem
    // Be sure to use \r rather than \n
    ResetModem(hModem);
    }
    return hModem;
    _open_err:
    CloseModem(hModem);
    hModem = INVALID_HANDLE_VALUE;
    return hModem;
    }
    void CloseModem(HANDLE hModem)
    {
    if(hModem != INVALID_HANDLE_VALUE){
    CloseHandle(hModem);
    }
      

  7.   

    soory:
    ******************************************************
    HANDLE hModem;
    DCBdcb;
    COMMTIMEOUTS timeouts;
    hModem = CreateFile("COM1",GENERIC_READ and GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0);
    GetCommState(hModem, &dcb)
    dcb.BaudRate = 38400;//115200;//38400;
    dcb.ByteSize = 8;
    dcb.Parity = NOPARITY;
    dcb.StopBits = ONESTOPBIT;
    SetCommState(hModem,&dcb);
    timeouts.ReadIntervalTimeout = MAXDWORD; 
    timeouts.ReadTotalTimeoutMultiplier = 0;
    timeouts.ReadTotalTimeoutConstant = 0;
    timeouts.WriteTotalTimeoutMultiplier = 0;
    timeouts.WriteTotalTimeoutConstant = 0;
    SetCommTimeouts(hModem, &timeouts );
    EscapeCommFunction(hModem, SETDTR);
    WriteFile(hModem,&byte,1,&numWrite, 0);
    ReadFile(hModem,&byte,1,&numRead, 0);
    *********************************************
      

  8.   

    看我以前的贴子,完整的串口通讯类TComm32的代码:
    http://www.midatech.com/csdn/expert/TopicView.asp?id=1673
    单机调试:
    (1)把COM1和COM2设成相同的参数,如波特率、停止位和寄偶校验等,用其中一个发,另一个收。
    (2)只有一个串口,可以自己发,自己收:把串口的发和收接到一起,其他引角悬空,如果写到这个串口数据还能读出同样数据说明程序正确。