新聞中心

EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > labview實現(xiàn)串口通信(三)

labview實現(xiàn)串口通信(三)

作者: 時間:2017-01-06 來源:網(wǎng)絡(luò) 收藏
在調(diào)試的過程中,我們經(jīng)常會發(fā)現(xiàn)有收到的數(shù)據(jù)延遲的現(xiàn)象,現(xiàn)在提出幾點解決的方法:
(1)在循環(huán)中加入適量的延時,通過一個簡單的例子看,
你會發(fā)現(xiàn)在cpu的占用率在加延時和不加的時候有很大的區(qū)別,當(dāng)加的時候基本不占,而不加延時的時候達(dá)到100%。我在調(diào)試串口通信時候,發(fā)現(xiàn)while loop里加一個延時會有很好的效果(假如有一個或某幾個線程占用了 100% 的 CPU,此時系統(tǒng)對其他線程就會反應(yīng)遲鈍。例如,程序的執(zhí)行線程占用了100% 的 CPU,那么用戶對界面的操作就會遲遲得不到響應(yīng),甚至于用戶會誤認(rèn)為程序死鎖了。所以在程序中要盡量避免出現(xiàn) 100% 占用 CPU 的情況。 目前大多數(shù)的計算機(jī)還是單核單個 CPU 的,因此要避免任何一個線程試圖 100% 占用 CPU 的情況).
(2)visa read 的字節(jié)總數(shù)最好用一個屬性節(jié)點來代替
因為我們不知道數(shù)據(jù)緩沖區(qū)有多少個字節(jié),這樣就不需要去設(shè)定了
(3)經(jīng)常看到會有人說串口里面有一堆數(shù)據(jù),但是去讀的時候卻讀回來一點點,每次均不相同,這種懷狀況是由于串口有一個serial configuration這個節(jié)點上面,有一個termination char,大家將它設(shè)為F就可以了,因為遇到這個終止符,它就會停止讀數(shù),所以讀回來的就會少了!


關(guān)鍵詞: labview串口通

評論


技術(shù)專區(qū)

關(guān)閉