VC6.0 COM口操作

1.打开COM口:  
                         DCB dcb; 
                         HANDLE m_hCom;//COM口句柄 
                         m_hCom = CreateFile( 
                                                                 "COM1", 
                                                                  GENERIC_READ|GENERIC_WRITE, 
                                                                  0, 
                                                                  NULL, 
                                                                  OPEN_EXISTING, 
                                                                  0, 
                                                                  NULL); 


2.设置COM口 
                      if (m_hCom != INVALID_HANDLE_VALUE) // 打开串行口成功 
                     { 
                        // 配置通讯参数 
                       GetCommState(m_hCom, &dcb); 


                       dcb.BaudRate = CBR_9600;//波特率 
                      dcb.Parity = EVENPARITY; 
                      //EVENPARITY 偶校验 ,NOPARITY 无校验 
                      //MARKPARITY 标记校验   ODDPARITY 奇校验 
                      dcb.ByteSize = 8;//数据位 
                      dcb.StopBits = ONESTOPBIT;// ONESTOPBIT 1位停止位   

                                                                        //TWOSTOPBITS 2位停止位 
                                                                       //ONE5STOPBITS   1.5位停止位 
                      COMMTIMEOUTS m_CommTimeouts; 
                      SetCommState(m_hCom, &dcb); 
                      // Config timeouts设置超时 
                      m_CommTimeouts.ReadIntervalTimeout = 0; 
                      m_CommTimeouts.ReadTotalTimeoutConstant = 1000; 
                      m_CommTimeouts.ReadTotalTimeoutMultiplier = 0; 
                      m_CommTimeouts.WriteTotalTimeoutConstant = 200; 
                      m_CommTimeouts.WriteTotalTimeoutMultiplier = 0; 
                      SetCommTimeouts(m_hCom, &m_CommTimeouts); 
                      // Clear buffer清除缓冲区 
                      PureComm(m_hCom, PURGE_TXCLEAR); 
                      PurgeComm(m_hCom, PURGE_RXCLEAR); 


                      // 打开串行口成功 
                      return TRUE; 
                  } 

3.写串口 
                     char lpOutBuffer[100]; 
                     DWORD dwBytesWrite=100; 
                     COMSTAT ComStat; 
                     DWORD dwErrorFlags; 
                     BOOL bWriteStat; 
                     bWriteStat=WriteFile(hCom,lpOutBuffer,dwBytesWrite,& dwBytesWrite,NULL); 
                     if(!bWriteStat) 
                     { 
                       AfxMessageBox("写串口失败!"); 
                     } 
4.读串口 

                     char str[100]; 
                     DWORD wCount;//读取的字节数 
                     BOOL bReadStat; 
                     bReadStat=ReadFile(hCom,str,100,&wCount,NULL); 
                     if(!bReadStat) 
                     { 
                        AfxMessageBox("读串口失败!"); 
                        return FALSE; 
                    } 
                    return TRUE; 

5.关闭 
                       BOOL CloseHandle(  HANDLE hObject; //handle to object to close );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值