LabVIEW串口通信詳解
很早就想做一個類似的東西了,正好這學期學了LabVIEW,作業(yè)就交了這個,基于LabVIEW的“串口示波器”上位機。
本文引用地址:http://m.butianyuan.cn/article/201701/337466.htm1.程序界面:
功能介紹:左邊上方串口接收區(qū),下方為串口字符發(fā)送區(qū)。右方為一個波形圖表,在程序內部每次將串口發(fā)送過來的數據,以f%格式化,顯示在波形圖表上。
按鈕介紹:從左至右依次,發(fā)送按鈕;清除計數按鈕;打開/關閉串口按鈕;清除接收區(qū)數據;清除波形圖表;保存波形;退出程序。
2.主程序框圖:
主程序框圖介紹:主程序框圖主要由3個狀態(tài)組成:程序的初始化,程序事件的響應,程序的退出。
狀態(tài)Init:程序初始化,主要把OpenCom等按鈕,串口狀態(tài),串口接收字符串,波形圖標,TX/RX計數等控件,置為False或清零。初始化狀態(tài)只執(zhí)行一次,接下來就進入狀態(tài)Event。
狀態(tài)Event:程序事件響應,由一個事件結構構成,共需響應8個事件:Open/CloseCom按鈕事件;串口號或波特率改變事件;發(fā)送按鈕事件;清空計數按鈕事件;清空接收區(qū)按鈕事件;清空波形區(qū)按鈕事件;保存波形按鈕事件;菜單選擇事件;退出按鈕事件。如果在此狀態(tài),按下退出按鈕,則進入狀態(tài)Exit,否則程序將一直運行在此狀態(tài)。
狀態(tài)Exit:程序退出。退出前需關閉已打開的VISA句柄。
3.串口接收程序框圖:
串口接收程序框圖介紹:當串口狀態(tài)為真時,調用串口屬性節(jié)點”Bytes at Port”,如果串口緩沖區(qū)有X字節(jié)的數據就接收X字節(jié)的數據。最后,用一個狀態(tài)機來實現(xiàn)相鄰兩個字符串的判斷。如果串口在相鄰兩個字符串之間接收時間大于50ms,則判斷為兩個獨立的字符串;如果小于50ms,則自動拼接前后兩個字符串。
評論