關于串口通訊的問題:
成都創新互聯公司是一家專業提供鐵嶺縣企業網站建設,專注與成都網站建設、成都網站制作、成都h5網站建設、小程序制作等業務。10年已為鐵嶺縣眾多企業、政府機構等服務。創新互聯專業網站建設公司優惠進行中。
很明顯,你還不知道(不會、不習慣)使用事件驅動的方式接收數據。
建議你仔細看看串口組件(無論VB6還是VB.net)的OnComm事件,你的問題很容易解決。
關于以太網通訊:
在TCP通訊中端口確實可以重用,你百度一下“TCP端口重用”能查到很多示例。
但絕大多數情況下不推薦端口重用,而應該采取服務器端建立連接池的方法。
或者,干脆不用TCP,用UDP解決也可以。
不是很明白你的題意
strHex = strHex + [String].Format("{0:X2} "
這里的意思是把每個字節數據轉換成了十六進制,每個字節占兩個字符
如果你串口收到的4個字節數據:43,27,56,200
那么你的結果是:2B1B38C8
即receivebytes.Text="2B1B38C8"
不足兩位的補0
如果你串口收到的4個字節數據:3,27,56,200
那么你的結果是:031B38C8
即receivebytes.Text="031B38C8"
要把某個數字或者一段文字通過串行接口發送出去是一個很復雜的事。
要在銅線上嚴格按照通訊協議,以微秒級別的間隔發送高低電平是軟件系統難以做到的。
所以,人們在串行接口芯片中預留了一些存儲空間作為緩沖區。軟件系統只負責將要發送的內容放進緩沖區,硬件系統只要發現緩沖區中有數據,就按照時鐘晶振提供的精確時間間隔將數據轉換為高低電平送到銅線上。
后來,由于硬件緩沖區很小(一般只有8個或16個字節),人們又通過軟件方式在硬件緩沖區的上層再加一層軟件緩沖區,其大小可以擴展至1024字節,甚至更高。這個就是MSComm控件里面的緩沖區了。
當你要發送一串數據時(比如200個),你可以直接送到MSComm里面,后面的操作全都不用管了。而實際上,MSComm會從其中按次序將16個字節送入硬件緩沖區,等硬件系統將數據發走后,再送16個…… 如此循環,直至全部發送完畢。接收緩沖區的作用與之類似。
上面的代碼看不出問題,如果初始化串口控件時已經注冊了AxMSComm1_OnComm,有數據接收應該能觸發,至于為什么沒有觸發,要看看你的接收方是否已經收到你的發出指令,是否已經有響應數據回發。
建議分開調試,用一個通用的串口助手,如格西烽火串口助手之類的,分別調試你的上位機和下位機。格西烽火串口助手能輕松的定制如你上面的發送數據。
你可以等全部獲取后 用mid函數去截取字符串 再賦值
dim a()
redim a(len(s)\4))
for i = 1 to len(s) step 4
a(j)=mid(s,i,4)
j=j+1
next
網頁名稱:vb.net串口緩存區的簡單介紹
本文鏈接:http://vcdvsql.cn/article2/hedjic.html
成都網站建設公司_創新互聯,為您提供網站策劃、網站制作、網站建設、商城網站、網站改版、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯