1樓:匿名使用者
假如你需顯示在frmmain窗體,用
frmmain.text1.text = hex(a(3))顯示在frmwel窗體,用
frmwel.text1.text = hex(a(3))frmwel窗體**:
option explicit
dim indata as string
private sub form_load()mscomm1.commport = 1
mscomm1.settings = "38400,n,8,1"
mscomm1.inbuffersize = 1024mscomm1.outbuffersize = 1024mscomm1.
inputmode = cominputmodebinary '.inputmodeconstants.cominputmodebinary
mscomm1.rthreshold = 1mscomm1.inputlen = 0
mscomm1.portopen = trueend sub
private sub mscomm1_oncomm()dim inlen as integer
dim i as integer
dim a() as byte
select case mscomm1.commeventcase mscommlib.oncommconstants.comevreceive
inlen = mscomm1.inputlenredim a(inlen)
a = mscomm1.input
text1.text = hex(a(3))frmmain.text1.
text = hex(a(3))for i = 0 to ubound(a)if len(hex(a(i))) = 1 thenindata = indata & "0" & hex(a(i))else
indata = indata & hex(a(i))end if
next
end select
end sub
frmmain窗體**:
option explicit
private sub command1_click()dim bdata(5) as byte
bdata(0) = &hba
bdata(1) = &h4
bdata(2) = &hc7
bdata(3) = &h2
bdata(4) = &h1
frmwel.mscomm1.output = bdataend sub
private sub command2_click()endend sub
private sub form_load()load frmwel
end sub
2樓:是小白啊
清空什麼緩衝區?我看你這用的都是區域性變數啊
VB串列埠接收多組資料是發生資料丟失問題
是的。這個其實是用的一個委託,你可以這樣試試,你output後等待50ms然後你read結果就不會出現錯位的問題了。我試過的。但是你如果非要這樣,那麼是不能監控的,直接讀取就可以讀到,除錯監控會出現值變了。你的這個程式我用虛擬串列埠在57600下試過,沒有問題。不過,你的for迴圈中用cint函式不...
c 串列埠傳送資料 資料位元組大於
傳送資料大於緩衝區時,一般採用分片多次傳送的方法,另外可以另外開闢一塊緩衝區,將緩衝區資料讀完之後立刻重新整理等待後續資料,但是此種方法依然可能造成資料丟失。在程式中建立緩衝區,串列埠只管接收,接收後儲存在緩衝區中,操作緩衝區的資料就行了。c 串列埠傳送單位元組 這裡面有全部 傳送一個字元和傳送一串...
微控制器接收串列埠資料,怎麼用微控制器確定串列埠接收資料的時間間隔?
你通過串列埠助手要接受字串或一組資料需要在微控制器端開闢一個緩衝區,否則可能丟失資料。以下程式是較為通用的串列埠收發例程,開闢一個16位元組的緩衝區,兩個指標,一個存數指標,一個取數指標,兩指標相等,證明沒有新的接收資料。include define uchar unsigned charuchar...