labview串列埠接收到的資料怎樣實時更新

時間 2021-08-30 10:23:57

1樓:匿名使用者

如果你每次收到的位元組數能確定(比如每條發過來的命令位元組數固定,或者最前一兩個位元組表示後面的位元組數),就按照位元組數接收。然後直接把收到的字串給顯示控制元件,不使用移位暫存器或反饋節點當然就不顯示之前的字元了。

別加“等待”之類的函式(手錶圖示哪個),串列埠讀取函式會在讀到指定數量的字元或到達超時之後返回讀到的字串。用它就能控制迴圈。也就是說來一條命令或者到達一次超時之後,自動迴圈一次,字串顯示控制元件裡面的值就是剛收到的字串了。

如下圖:

串列埠的引數我就使用預設的“9600,8,n,1”了,超時值我設定的是100ms,為了讓程式執行時不會因為預設的10000ms超時顯得程式卡死。但是幾乎每100毫秒就會有一個超時錯誤並返回空字串,所以內層的錯誤分支什麼也沒做,在超時的時候不用空字串替換原有的顯示值。

如果字元數不確定,你還不想保留之前的值,那就不好辦了。很有可能會造成一句話分兩次顯示的情況,某次顯示前面一部分,後面一次顯示後一部分。

看下圖吧:

為減少上述情況的出現,我把超時值改為了1000ms,後面的條件分支根據讀到的位元組數區分。0的時候不更新顯示控制元件,其它值的時候顯示剛剛收到的字串。因為你不要和前面的拼湊,所以有可能是不完整的。

其實也可以讓字串顯示控制元件自動滾動,或者字串長度達到一定長度時或點清空按鈕時,清空顯示值。可以用反饋節點/移位暫存器/區域性變數/值屬性等。

下圖的做法最簡單,因為用的是輸入控制元件,可以隨便刪除之前的內容。

2樓:tn瓶邪

使用移位暫存器功能。在迴圈框左邊框或右邊框上點右鍵,新增移位暫存器,將採集到的資料連到右邊的暫存器埠,再從外界連到左邊的暫存器入口,裡面再加一個函式將暫存器入口的資料與新鮮採集到的資料合併,然後引到輸出控制元件上。

從需實現一個類似這樣的功能: display = old data + new data

微控制器接收串列埠資料,怎麼用微控制器確定串列埠接收資料的時間間隔?

你通過串列埠助手要接受字串或一組資料需要在微控制器端開闢一個緩衝區,否則可能丟失資料。以下程式是較為通用的串列埠收發例程,開闢一個16位元組的緩衝區,兩個指標,一個存數指標,一個取數指標,兩指標相等,證明沒有新的接收資料。include define uchar unsigned charuchar...

串列埠接收資料怎樣儲存在陣列中呢

dim buffer as variant 表示宣告瞭一個buffer變數,但是這個buffer變數的型別不確定,可以是long integer double object string以及陣列等等,buffer變數的型別由編譯器自行判斷與轉換。dim buffer 100 as variant 表...

labview串列埠傳送的格式是什么

是這樣,labview裡字串預設是以ascii碼顯示的,其實字串也可以改成16進製制顯示,那麼如果你要傳送10001000,只要在16進製制的顯示下傳送88就可以了,見下圖。至於起始位終止位這些,道理是一樣的。同樣道理,串列埠讀取的時候有時會顯示成亂碼,嘗試著用16進製制顯示,有時候問題就迎刃而解了...