在VS2005中使用axmscomm控件實現串口通訊

要使用vs實現串口通訊,目前有幾種方法,serialPort和mscomm。

 

先講mscomm

首先如果你的vs05的工具欄中沒有microsoft communications control, 請右鍵點擊工具欄選擇添加 / 移除項,在COM組件中勾選microsoft communications control version 6.0 .

添加控件成功後將控件拖到winForm中,注意設置控件屬性 settings : 9600 , n , 8,1(2)。這4個參數爲[BaudRate][Parity][DataBits][StopBits] 即通訊格式中的波特率、校驗位、數據位和停止位。

 

看代碼:

  1. /// <summary>
  2.         /// 打開com端口
  3.         /// </summary>
  4.         /// <param name="comm"></param>
  5.         private void OpenComm(AxMSCommLib.AxMSComm comm){
  6.         
  7.             comm.CommPort = (short)1;   //設置端口爲COM1     
  8.             try
  9.             {
  10.                 comm.PortOpen = true;
  11.                 
  12.             }
  13.             catch{
  14.                 MessageBox.Show("openport error");
  15.             }
  16.         
  17.         }
  18.         /// <summary>
  19.         /// 組合字符串
  20.         /// </summary>
  21.         /// <returns></returns>
  22.         private string toMarsh(){
  23.             string ss = textBox2.Text;
  24.             string tm = (char)20+textBox3.Text+(char)13+(char)22;
  25.             string values = tm+ss+((char)13).ToString()+((char)1).ToString();
  26.             return values;
  27.         
  28.         }   //字符串中的char型是marsh噴墨打印機的指令代碼。
  29.                    private void button1_Click(object sender, System.EventArgs e)
  30.         {
  31.             axMSComm1.Output = toMarsh();  //把toMarsh()方法生成的字符串發送到axmscomm的output中
  32.         }

以上代碼只是一個簡單的程序。向marsh噴墨打印機發送了一個字符串用於打印。

axmscomm還可以設置其他的屬性

 

  1.  if (this.axMSComm1.PortOpen == true)
  2.                 this.axMSComm1.PortOpen = false;
  3.             this.axMSComm1.CommPort = 1;//端口 
  4.             this.axMSComm1.Settings = "9600,n,8,1";//通信參數    
  5.             this.axMSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeBinary;//接收數據的類型
  6.             this.axMSComm1.RThreshold = 1; //接收緩衝區中接收到一個字符,就產生一次OnComm事件
  7.             //this.axMSComm1.OnComm += new EventHandler(axMSComm1_OnComm);  //註冊一個OnComm事件
  8.             this.axMSComm1.SThreshold = 0;//當發送緩衝區中字符數小於該值時,MSComm控件設置Commevent屬性爲ComEvSend,併產生OnComm事件。若Sthreshold屬性設置爲0,則不產生OnComm事件 
  9.             this.axMSComm1.RTSEnable = true;//啓用請求發送 
  10.             this.axMSComm1.DTREnable = true;//接收就緒             
  11.             this.axMSComm1.InputLen = 0;//一次從接收緩衝區中讀取字節數,// 使用Input時為讀取全部資料
  12.             this.axMSComm1.NullDiscard = false;
  13.             this.axMSComm1.PortOpen = true//打開端口
  14. http://blog.csdn.net/imliujie/archive/2007/03/19/1533243.aspx

關於serialPort的使用方法可以參考

http://www.programfan.com/club/showpost.asp?id=29653

http://www.17xie.com/book-94536548.html

講的很詳細。

 

 

發佈了40 篇原創文章 · 獲贊 2 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章