labview串口通訊的深入分析.
labview可以直接調(diào)用ACTIVEX控件,所以可以直接使用,新版本的LV可以注冊回調(diào)函數(shù)(REG?。茫粒蹋蹋拢粒茫耍?,所以這個控件的所有功能都是可用的,下面示意一下調(diào)用的方法.
重點(diǎn)介紹一下VISA串口通訊的方法:
基本流程是:打開(配置)--->循環(huán)(讀寫)--->關(guān)閉(釋放)
一共有八個VI節(jié)點(diǎn)
1.VISA Configure Serial Port :
設(shè)定波特率,數(shù)據(jù)位,停止位,奇偶校驗位,流控制,超時處理,結(jié)束符使能,結(jié)束符.
特別需要注意的是超時(TIMEOUT) 和結(jié)束符號兩個參數(shù).TIMEOUT默認(rèn)的10秒,結(jié)束符號默認(rèn)是使能狀態(tài),默認(rèn)的結(jié)束符是0X0A(n),另外,回車0x0D (r)也經(jīng)常做為做為結(jié)束符號.
如果采用的是二進(jìn)制通訊,可能會遇到結(jié)束符的問題.因為二進(jìn)制中0A是10,0D是13,這兩個是作為數(shù)字出現(xiàn)的,如果不禁止結(jié)束符號,會導(dǎo)致讀提前結(jié)束,產(chǎn)生錯誤的結(jié)果,這再和設(shè)備通訊時可能會碰到.
至于波特率,數(shù)據(jù)位等,對照要通訊的設(shè)備的要求設(shè)定就可以了.
2.Visa Write: 這個節(jié)點(diǎn)負(fù)責(zé)把緩沖區(qū)的數(shù)據(jù)發(fā)送出去,并返回實際發(fā)送的數(shù)據(jù).
MSCOMM串口通訊時是可以選擇文本和二進(jìn)制方式的,VISA有選擇項嗎?沒有,完全取決于你的字符串,這是一個需要注意的問題.
正常顯示方式時,字符串是"1234"在內(nèi)存中存儲的是ASCII,看下圖.
"1"=31,"2"=32?。ⅲ常ⅲ剑常?,"4"=34.
發(fā)送的字符串"1234"實際發(fā)送的是16進(jìn)制的31,32,33,34.用過單片機(jī)的都知道,實際所有的串口通訊從本質(zhì)上說,都是二進(jìn)制的,只不過接收方面如何判定數(shù)據(jù)的問題.
比如發(fā)送的是33(HEX),接收方面可以解釋成數(shù)字1,(字符串型),或者是數(shù)字33.
用過C的人知道,字符串實際和U8數(shù)組是等價的.
所以VISA是不管是否是字符串還是數(shù)值,都是采用二進(jìn)制發(fā)送的,關(guān)鍵是我們在于我們的字符串是如何構(gòu)成的.
Visa Read等其它的幾個都比較簡單,就不介紹了.
評論