VB串口通信.doc_第1頁
VB串口通信.doc_第2頁
VB串口通信.doc_第3頁
VB串口通信.doc_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

界面如下:代碼如下:Private Sub Form_Load()If MSComm1.PortOpen = True Then MSComm1.PortOpen = FalseElseEnd IfCombo1.AddItem COM1Combo1.AddItem COM2Combo1.AddItem COM3Combo1.AddItem COM4Combo1.AddItem COM5Combo1.AddItem COM6Combo1.AddItem COM7Combo1.AddItem COM8Combo1.AddItem COM9Combo1.AddItem COM10Combo1.AddItem COM11Combo1.AddItem COM12Combo1.AddItem COM13Combo1.AddItem COM14Combo1.AddItem COM15Combo1.AddItem COM16Combo1.ListIndex = 2Combo2.AddItem 256000Combo2.AddItem 128000Combo2.AddItem 115200Combo2.AddItem 57600Combo2.AddItem 38400Combo2.AddItem 28800Combo2.AddItem 19200Combo2.AddItem 14400Combo2.AddItem 12800Combo2.AddItem 11520Combo2.AddItem 9600Combo2.AddItem 4800Combo2.AddItem 2400Combo2.AddItem 1200Combo2.AddItem 600Combo3.AddItem 無NoneCombo3.AddItem 奇OddCombo3.AddItem 偶EvenCombo4.AddItem 4Combo4.AddItem 5Combo4.AddItem 6Combo4.AddItem 7Combo4.AddItem 8Combo5.AddItem 1Combo5.AddItem 2MSComm1.CommPort = Combo1.ListIndex + 1MSComm1.Settings = 9600,n,8,1ComOpen.Caption = 打開串口Shape1.FillColor = &HFFFFC0End SubPrivate Sub ComOpen_Click()On Error GoTo uerror 發(fā)現(xiàn)錯誤跳轉(zhuǎn)到錯誤處理If ComOpen.Caption = 關(guān)閉串口 Then MSComm1.PortOpen = False ComOpen.Caption = 打開串口 按鈕文字改變 Shape1.FillColor = &HFFFFC0 燈顏色改變Else MSComm1.PortOpen = True ComOpen.Caption = 關(guān)閉串口 Shape1.FillColor = &HFFEnd IfExit Subuerror: msg$ = 無效端口號 錯誤顯示 Title$ = 串口調(diào)試助手 X = MsgBox(msg$, 48, Title$) 48標(biāo)示顯示警告圖標(biāo)End SubPrivate Sub MSComm1_OnComm() Dim BytReceived() As Byte Dim strBuff As String Dim i As Integer Select Case MSComm1.CommEvent 事件發(fā)生 Case 2 Cls MSComm1.InputLen = 0 讀入緩沖區(qū)全部內(nèi)容 strBuff = MSComm1.Input 讀入到緩沖區(qū) Label10.Caption = Label10.Caption + Len(strBuff) 接收計(jì)數(shù) If MSComm1.InputMode = comInputModeBinary Then BytReceived() = strBuff 如果是二進(jìn)制接收模式則進(jìn)行數(shù)據(jù)處理,否則直接顯示字符串 For i = 0 To UBound(BytReceived) If Len(Hex(BytReceived(i) = 1 Then strData = strData & 0 & Hex(BytReceived(i) & 如果只有一個(gè)字符,則前補(bǔ)0,如F顯示0F,最后補(bǔ)空格 Else 方便顯示觀察如: 00 0F FE strData = strData & Hex(BytReceived(i) & End If Next TextReceive = TextReceive & strData strData = Else TextReceive = TextReceive & strBuff End If End SelectEnd SubPrivate Sub ComSend1_Click() 手動發(fā)送Dim Temp(0) As ByteDim strBuff As StringIf Option1.Value = True Then 如果顯示16進(jìn)制發(fā)送則進(jìn)行16進(jìn)制處理 ,這里只發(fā)送一個(gè) Temp(0) = &H & TextSend MSComm1.Output = Temp 發(fā)送一個(gè)16進(jìn)制Else strBuff = TextSendEnd IfIf MSComm1.PortOpen = False Then MsgBox 請打開串口End IfOn Error GoTo uerrorMSComm1.Output = strBuffLabel11.Caption = Label11.Caption + Len(strBuff) 發(fā)送計(jì)數(shù)uerror:End SubPrivate Sub ComSend2_Click()If ComSend2.Caption = 自動發(fā)送 Then ComSend2.Caption = 關(guān)閉自動發(fā)送 Timer1.Interval = TextTime.Text Timer1.Enabled = TrueElse ComSend2.Caption = 自動發(fā)送 Timer1.Enabled = FalseEnd IfEnd SubPrivate Sub ComClean1_Click()TextSend.Text = 清空發(fā)送窗口End SubPrivate Sub Option3_Click()MSComm1.InputMode = comInputModeBinary 選擇接收方式End SubPrivate Sub Option4_Click()MSComm1.InputMode = comInputModeText 選擇接收方式End SubPrivate Sub Timer1_Timer()Call ComSend1_Click 定時(shí)調(diào)用手動發(fā)送End SubPrivate Sub Timer2_Timer()If Combo3 = 無None Then MSComm1.Settings = Str(Combo2) + N + Str(Combo4) + Str(Combo5)ElseIf Combo3 = 奇Odd Then MSComm1.Settings = Str(Combo2) + O + Str(Combo4) + Str(Combo5)ElseIf Combo3 = 偶Even Then MSComm1.Settings = Str(Combo2) + E + Str(Combo4) + Str(Combo5)End IfEnd SubPrivate Sub Combo1_Click()If MSComm1.PortOpen = True Then 如果串口打開先關(guān)閉后再進(jìn)行其他操作 MSComm1.PortOpen = FalseEnd IfMSComm1.CommPort = Combo1.ListIndex + 1 讀取com口號End SubPrivate Sub ComClean3_Click()Label10.Caption = 0Label11.Caption = 0End SubPrivate Sub ComClean2_Click()TextReceive.Text = 接收窗口End Sub功能上:實(shí)現(xiàn)了字符串的發(fā)送和接收,8位數(shù)據(jù)的十六進(jìn)制發(fā)送和接收,有端口,波特率等設(shè)置。缺點(diǎn):1:只可以發(fā)送兩位十六進(jìn)制數(shù)。2:接收和發(fā)送的顯示數(shù)據(jù)上有點(diǎn)不同步,十六進(jìn)制的沒有算進(jìn)去。3:沒有TXT的文件發(fā)送和接收的功能。如需要源程序的,可下載本文的圖片,下載后把圖片的.jpg格式改為.rar格式就可以解壓出來了。附:MSComm控件的屬性:屬性說明(Name)MSComm控件的名稱(自定義)打開屬性頁CommPort獲得或設(shè)置通訊端口號DTREnable決定在通訊過程中是否使數(shù)據(jù)終端機(jī)狀態(tài)線有效。取值為:TrueFalseEOFEnable獲得或設(shè)置是否搜索EOF字符。取值為:TrueFalseHandshaking獲得或設(shè)置軟件的握手協(xié)議。取值為:0 comNone1 comXOnXoff2 comRTS3 comRTSXOnXOffInBufferSize獲得或設(shè)置接收緩沖區(qū)的大小,以字節(jié)數(shù)為單位。Index在對象數(shù)組中的編號InputLen獲得或設(shè)置輸入屬性從接收緩沖區(qū)讀出的字符數(shù)。InputMode獲得或設(shè)置輸入屬性檢索的數(shù)據(jù)類型。取值為:0 comInputModeText1 comInputModeBinaryLeft距離容器左邊框的距離NullDiscard決定是否將空字符串從端口傳送到接收緩沖區(qū)。取值為:TrueFalse

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論