乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      如何使用串口控件MSComm在dotNet下編程

       orion360doc 2010-12-27

      如何使用串口控件MSComm在dotNet下編程

      關(guān)鍵詞 MSComm  串口  c#                                          

      對(duì)于從事工控和單片機(jī)工作的人來(lái)說(shuō)串口編程是很常用的和很重要的。事實(shí)上在VB.net和C#中對(duì)串口的操作和VS6里沒(méi)有大的區(qū)別。你仍然可以直接調(diào)用API或者使用MSComm或其他第三方控件。這里只介紹大家常用的MSComm。例子使用2、3腳跳過(guò)線的串口將COM1和COM2連接。 

      首先,你必須有MSComm.ocx文件在你的Windows的System32目錄下,而且它必須正確的注冊(cè)。你可以裝VS6來(lái)獲得,微軟也指出這樣不會(huì)有沖突。當(dāng)然我們可以自己注冊(cè)而不用裝龐大的VS6。先將MSComm.ocx復(fù)制到System32目錄下,然后使用edit工具編輯一個(gè)以.reg擴(kuò)展名的文件,在文件里輸入以下的文字 
      REGEDIT 
      HKEY_CLASSES_ROOT\Licenses Licensing: Copying the keys may be violation of established copyrights. 

      // The MsComm32 Control License follows: 
      HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905 kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun 

      然后,存盤(pán)。雙擊文件就完成了注冊(cè)。 

      現(xiàn)在,我們介紹一下MSComm在VB.net和C#中和VS6里的不同和實(shí)際的應(yīng)用。在VB.net或C#中建立一個(gè)窗口Form1。加入兩個(gè)MSComm控件,你會(huì)發(fā)現(xiàn)這里MSComm的默認(rèn)名字是axMSComm,有點(diǎn)奇怪吧。同時(shí)因?yàn)槊臻g的問(wèn)題你不能給axMSComm1.InputMode賦0或1這樣的值。你只能這樣來(lái)做如axMSComm1.InputMode=MSCommLib.InputModeConstants.comInputModeBinary或者axMSComm1.InputMode=MSCommLib.InputModeConstants.comInputModeText。 

      現(xiàn)在我們?cè)诖翱谥屑尤雝extBox和button控件。在Form1_Load中加入以下的代碼(C#版本): 
               try  
                
                  axMSComm1.PortOpen =true; 
                  axMSComm2.PortOpen =true; 

                  
               catch  
               
                  MessageBox.Show ("串口操作失敗"); 
               
      (VB.net版本) 
                  Try 
                      axMSComm1.PortOpen True 
             axMSComm2.PortOpen True 
                  Catch 
                      MsgBox("串口操作失敗", MsgBoxStyle.Critical) 
                  End Try 


      在button的Click事件中加入以下代碼: 
      (C#版本) 
               byte[] bytOut=new byte[1]; 
               bytOut[0]=255; 
               axMSComm2.Output=bytOut; 
      //這里我們只發(fā)一字節(jié)0ffh如果發(fā)更多可以定義更大的數(shù)組 

      (VB.net版本) 
               Dim bytOut as byte=255 
               axMSComm2.Output=bytOut 

      現(xiàn)在在axMSComm1_OnComm中加入 

      (C#版本) 
         string strIn=""  
         byte[] bytIn; 
         object objIn; 
         int i; 
          
         axMSComm1.InputMode=MSCommLib.InputModeConstants.comInputModeBinary; 
         axMSComm1.InputLen 0; 
         objIn=axMSComm1.Input  //這里注意axMSComm1.Input返回的是一個(gè)object的 
         bytIn =(byte[])objIn;   //類(lèi)型,所以必須使用顯式的類(lèi)型轉(zhuǎn)換,這點(diǎn)和VB不同 
         for (i=0;i<=(bytIn.Length-1);i++ 
         
         strIn +="\r\n"+ "+bytIn[i].ToString("X"); //轉(zhuǎn)換為16進(jìn)制顯示 
         
         textBox1.Text+=strIn; 

      (VB.net版本) 

         Dim strIn as string =”” 
         Dim bytIn() as byte 
         Dim as Integer 
             
         axMSComm1.InputMode=MSCommLib.InputModeConstants.comInputModeBinary 
         axMSComm1.InputLen 
         bytIn=axMSComm1.Input  
         For To UBound(bytInput) 
          
         strIn +="\r\n"+ "+Hex(bytIn[i]) 
         Next 
         textBox1.Text+=strIn 
      這里請(qǐng)注意C#在接收的時(shí)候與VB的不同。 

      將axMSComm1的屬性RThreshold設(shè)置為1,axMSComm1和axMSComm2的SThreshold 設(shè)置為0。現(xiàn)在可以編譯運(yùn)行了,請(qǐng)用一條2、3腳跳過(guò)線的NullModem線連接計(jì)算機(jī)的COM1和COM2,運(yùn)行后,點(diǎn)擊button你應(yīng)該在textBox中看到FF并換行。 

      這里使用axMSComm1接收axMSComm2發(fā)送,只發(fā)了一個(gè)字節(jié),但更多的字節(jié)發(fā)送也沒(méi)什么問(wèn)題,只要定義更大的數(shù)組就可以了,當(dāng)然如果你感覺(jué)MSComm不夠強(qiáng)大你可以調(diào)用api或者自己定義一個(gè)控制串口的類(lèi)。 
      MSComm的其他的屬性和VS6中沒(méi)什么太大的不同,你可以自己試試。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶(hù) 評(píng)論公約

        類(lèi)似文章 更多