是接受串列埠資料,每秒資料,自動傳 我的問題是我這樣做可以不,因為vb是單執行緒,用這種方法接收資料會

時間 2021-05-22 12:38:41

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...