南通国药控股:利用CSerialPort 类进行通信串口 .

来源:百度文库 编辑:中财网 时间:2024/04/19 04:55:40
  1. 示例代码:  
  2. 打开串口  
  3. CSerialPort m_Port;  //CSerialPort类对象   
  4. if (m_Port.InitPort(this, m_nCom, m_nBaud,m_cParity,m_nDatabits,m_nStopbits,m_dwCommEvents,512))  
  5.         {  
  6.             m_Port.StartMonitoring();  
  7.             m_ctrlIconOpenoff.SetIcon(m_hIconRed);  
  8.             strStatus.Format("STATUS:COM%d OPENED,%d,%c,%d,%d",m_nCom, m_nBaud,m_cParity,m_nDatabits,m_nStopbits);  
  9.             //"当前状态:串口打开,无奇偶校验,8数据位,1停止位");   
  10.         }  
  11.         else  
  12.         {  
  13.             AfxMessageBox("没有发现此串口或被占用");  
  14.             m_ctrlIconOpenoff.SetIcon(m_hIconOff);  
  15.         }  
  16. 函数原型:  
  17. BOOL CSerialPort::InitPort(CWnd* pPortOwner,    // the owner (CWnd) of the port (receives message)   
  18.                            UINT  portnr,        // portnumber (1..4)   
  19.                            UINT  baud,          // baudrate   
  20.                            char  parity,        // parity    
  21.                            UINT  databits,      // databits    
  22.                            UINT  stopbits,      // stopbits    
  23.                            DWORD dwCommEvents,//EV_RXCHAR, EV_CTS etc   
  24.                            UINT  writebuffersize)   // size to the writebuffer   
  25. 发送数据:  
  26. 示例代码:  
  27. if(m_Port.m_hComm!=NULL)  
  28. {  
  29.     m_Port.WriteToPort(data,len);  
  30.     //m_Port.WriteToPort((LPCTSTR)m_strSendData);      
  31. }  
  32. 函数原型:  
  33.     void        WriteToPort(char* string);  
  34.     void        WriteToPort(char* string,int n);  
  35.     void        WriteToPort(LPCTSTR string);  
  36.     void        WriteToPort(LPCTSTR string,int n);  
  37. 接收数据:  
  38. //添加消息映射函数   
  39. ON_MESSAGE(WM_COMM_RXCHAR, OnCommunication)  
  40. //函数原型   
  41. LONG CSCommDlg::OnCommunication(WPARAM ch, LPARAM port)  
  42. ch是接受的字符,port是com口号  
  43. 关闭串口  
  44. m_Port.ClosePort();