如何使用串口控件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 a 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]; |