三步了解VB.NET串口通訊如何發(fā)送接收數(shù)據(jù)
學(xué)習(xí)VB.NET時(shí),你可能會(huì)遇到VB.NET串口通訊問(wèn)題,這里將介紹VB.NET串口通訊問(wèn)題的解決方法,在這里拿出來(lái)和大家分享一下。VB.NET串口通訊支持總是讓人覺得有所不足,在使用VB6的MsComm32.ocx時(shí),很多人都會(huì)在VB.NET的開發(fā)中覺得很困擾。這里講述的VB.NET串口通訊類使用native代碼,并且它是通API調(diào)用實(shí)現(xiàn)的,你會(huì)發(fā)現(xiàn)VB.NET串口通訊就是這么簡(jiǎn)單。
在說(shuō)明如何使用這個(gè)類前,需要說(shuō)明的是,本類只是一個(gè)VB.NET串口通訊演示,你可能需要根據(jù)你的情況修改后使用。另外,本類的目的是通過(guò)例子教會(huì)你在無(wú)需ocx控件和第三方組件的支持下用VB.NET開發(fā)串口通訊程序,所有并沒(méi)有完善的異常錯(cuò)誤處理。
1.初始化并打開串口
創(chuàng)建一個(gè)CRs232類的實(shí)例,并在調(diào)用Open方法前設(shè)置好串口通訊參數(shù)。
- Dim moRS232 as New Rs232()
- With moRs232
- .Port = 1'//Uses COM1
- .BaudRate = 2400
- '//波特率 2400
- .DataBit = 8
- '//8 data bits
- .StopBit = Rs232.DataStopBit.StopBit_1
- '//停止位 1
- .Parity = Rs232.DataParity.Parity_None
- '//無(wú)奇偶校驗(yàn)
- .Timeout = 500
- '//超時(shí)時(shí)間500 ms
- End With
- '// 初始化并打開串口
- moRS232.Open ()
- '// 串口打開后,你可以隨意地控制DTR/RTS
- moRS232.Dtr = True
- moRS232.Rts = True
2.發(fā)送數(shù)據(jù)
本類為Rx和Tx準(zhǔn)備了兩個(gè)緩沖區(qū)(buffer),發(fā)送數(shù)據(jù)時(shí),只需要設(shè)置TxData屬性為你需要發(fā)送的數(shù)據(jù),然后調(diào)用Tx方法就可以了。
- moRS232.TxData = txtTx.Text
- moRS232.Tx()
3.接收數(shù)據(jù)
先調(diào)用Rx方法(參數(shù)為您需要從串口讀取的字節(jié)數(shù)),然后讀取RxData屬性。
- moRS232.Rx(10)
- '// 從串口通訊緩沖區(qū)里讀取10字節(jié)
- Dim sRead as String=moRs232.RxData
需要注意的是,當(dāng)本類無(wú)法用串口讀取到所需的字節(jié)數(shù),程序線程在超時(shí)異常發(fā)生前是鎖死的,超時(shí)時(shí)間通過(guò)Timout屬性設(shè)置。
【編輯推薦】