MSDN里有一例子,好象是叫TTY,是用API进行串口编程的。你可以看一看,它在
VCSamples的SDK子目录下。

解决方案 »

  1.   

    HANDLE m_hPort;
    DCB dcb;
    m_hPort = CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);
    if(m_hPort == INVALID_HANDLE_VALUE)
    {
    GetLastError(); CloseHandle(m_hPort);
    }else
    {
     GetCommState(m_hPort,&dcb);
    //dcb settings
    SetCommState(m_hPort,&dcb);
    TransmitCommChar("a");
    SetCommMask(....)
    WaitCommEvent(....)//只能接收与SetCommMask参数对应的事件
      

  2.   

    想必"放不稳的鸡蛋 "收集的email很多了,怎么总是见你在问email,却收不到你的信呢?
      

  3.   

    hCom = CreateFile("com1",
                  GENERIC_READ | GENERIC_WRITE,
      0,
      NULL,
                          OPEN_EXISTING,
      0,
                          //FILE_FLAG_OVERLAPPED,
      NULL);
         printf("comm1 handl is %d \n",hCom);
       
       pbuf = data;
       strcpy(data,"12341567890");
       len = 1;
       GetCommState(hCom, &dcb ) ; 
       dcb.BaudRate =9600; 
       dcb.ByteSize =8;
       dcb.Parity =EVENPARITY
      // dcb.Parity = SPACEPARITY;
      // dcb.Parity = MARKPARITY;
       dcb.fBinary = TRUE ;
       dcb.fParity = TRUE;
       SetCommState(hCom, &dcb ) ; //串口参数配置
    /////////////////////////////////////////
     
       WriteFile(hCom,data,strlen(data),&len,0);
       
       printf("send len is %d \n",len);
      
     GetCommState(hCom, &dcb ) ; 
       dcb.BaudRate =9600; 
       dcb.ByteSize =8;
       dcb.Parity = ODDPARITY;
     
       dcb.fBinary = TRUE ;
       dcb.fParity = TRUE;
       SetCommState(hCom, &dcb ) ;
       strcpy(data,"A");
       WriteFile(hCom,data,strlen(data),&len,0);DWORD   mask; 
     mask =EV_RXCHAR|EV_DSR|EV_BREAK|EV_ERR;
    SetCommMask(hCom,mask);WaitCommEvent(hCom,&mask,0);