新聞中心
VB.NET使用AxMSComm實現(xiàn)串口通信的發(fā)送讀取問題?
上面的代碼看不出問題,如果初始化串口控件時已經(jīng)注冊了AxMSComm1_OnComm,有數(shù)據(jù)接收應該能觸發(fā),至于為什么沒有觸發(fā),要看看你的接收方是否已經(jīng)收到你的發(fā)出指令,是否已經(jīng)有響應數(shù)據(jù)回發(fā)。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供哈爾濱網(wǎng)站建設(shè)、哈爾濱做網(wǎng)站、哈爾濱網(wǎng)站設(shè)計、哈爾濱網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、哈爾濱企業(yè)網(wǎng)站模板建站服務,十余年哈爾濱做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
建議分開調(diào)試,用一個通用的串口助手,如格西烽火串口助手之類的,分別調(diào)試你的上位機和下位機。格西烽火串口助手能輕松的定制如你上面的發(fā)送數(shù)據(jù)。
VB.NET中如何處理串口通信接收的數(shù)據(jù)?
你可以預先約定一個截止附,讀取的字節(jié)統(tǒng)統(tǒng)放到緩存區(qū)里,直到讀到截止附再處理、顯示。
VB與VB.NET串口及以太網(wǎng)通迅
關(guān)于串口通訊的問題:
很明顯,你還不知道(不會、不習慣)使用事件驅(qū)動的方式接收數(shù)據(jù)。
建議你仔細看看串口組件(無論VB6還是VB.net)的OnComm事件,你的問題很容易解決。
關(guān)于以太網(wǎng)通訊:
在TCP通訊中端口確實可以重用,你百度一下“TCP端口重用”能查到很多示例。
但絕大多數(shù)情況下不推薦端口重用,而應該采取服務器端建立連接池的方法。
或者,干脆不用TCP,用UDP解決也可以。
vb.NET中用mscomm控件編寫串口通信軟件數(shù)據(jù)無法接收
.net中不用mscomm 而改用 searport
AxMSComm1.Input 只能一次,會把輸入緩沖區(qū)的內(nèi)容全都讀出來并清空
如果沒有產(chǎn)生Oncomm事件,你可以把輸入經(jīng)部區(qū)的大小改一下改成1就行了
vb.net 串口收發(fā)數(shù)據(jù)有問題
不知道你是不是用51單片機往串口發(fā)數(shù)據(jù),是的話那是因為51的sbuf最多存放8個字節(jié),所以你發(fā)12個字節(jié)會分成兩次發(fā)完。還有在接收的時候最好定義好通信協(xié)議,比如加一個偵頭,一個偵尾,通過這兩個字節(jié)的內(nèi)容來接收數(shù)據(jù)。
老兄,提問還是給點懸賞分嘛,不要吝嗇哪點分,知識是無價的,你給得越多,回答你的人才會越多。
VB.NET串口通訊怎么發(fā)送和接收十六進制?
串口通信最終都是用二進制傳輸?shù)模阌么a把二進制轉(zhuǎn)化成十六進制就可以了。不需要額外設(shè)置。
文章名稱:vb.net的串口通信,串口 vbnet vs2010
本文網(wǎng)址:http://ef60e0e.cn/article/hcoijp.html