<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > LabVIEW串口通信的一個(gè)例子-串口“示波器“

          LabVIEW串口通信的一個(gè)例子-串口“示波器“

          作者: 時(shí)間:2016-12-27 來(lái)源:網(wǎng)絡(luò) 收藏
          很早就想做一個(gè)類(lèi)似的東西了,正好這學(xué)期學(xué)了LabVIEW,作業(yè)就交了這個(gè),基于LabVIEW的“串口示波器”上位機(jī)。

          1.程序界面:

          本文引用地址:http://www.ex-cimer.com/article/201612/334172.htm

          功能介紹:左邊上方串口接收區(qū),下方為串口字符發(fā)送區(qū)。右方為一個(gè)波形圖表,在程序內(nèi)部每次將串口發(fā)送過(guò)來(lái)的數(shù)據(jù),以f%格式化,顯示在波形圖表上。
          按鈕介紹:從左至右依次,發(fā)送按鈕;清除計(jì)數(shù)按鈕;打開(kāi)/關(guān)閉串口按鈕;清除接收區(qū)數(shù)據(jù);清除波形圖表;保存波形;退出程序。

          2.主程序框圖

          主程序框圖介紹:主程序框圖主要由3個(gè)狀態(tài)組成:程序的初始化,程序事件的響應(yīng),程序的退出。

          狀態(tài)Init:程序初始化,主要把OpenCom等按鈕,串口狀態(tài),串口接收字符串,波形圖標(biāo),TX/RX計(jì)數(shù)等控件,置為False或清零。初始化狀態(tài)只執(zhí)行一次,接下來(lái)就進(jìn)入狀態(tài)Event。

          狀態(tài)Event:程序事件響應(yīng),由一個(gè)事件結(jié)構(gòu)構(gòu)成,共需響應(yīng)8個(gè)事件:Open/CloseCom按鈕事件;串口號(hào)或波特率改變事件;發(fā)送按鈕事件;清空計(jì)數(shù)按鈕事件;清空接收區(qū)按鈕事件;清空波形區(qū)按鈕事件;保存波形按鈕事件;菜單選擇事件;退出按鈕事件。如果在此狀態(tài),按下退出按鈕,則進(jìn)入狀態(tài)Exit,否則程序?qū)⒁恢边\(yùn)行在此狀態(tài)。

          狀態(tài)Exit:程序退出。退出前需關(guān)閉已打開(kāi)的VISA句柄。

          3.串口接收程序框圖:

          串口接收程序框圖介紹:當(dāng)串口狀態(tài)為真時(shí),調(diào)用串口屬性節(jié)點(diǎn)”Bytes at Port”,如果串口緩沖區(qū)有X字節(jié)的數(shù)據(jù)就接收X字節(jié)的數(shù)據(jù)。最后,用一個(gè)狀態(tài)機(jī)來(lái)實(shí)現(xiàn)相鄰兩個(gè)字符串的判斷。如果串口在相鄰兩個(gè)字符串之間接收時(shí)間大于50ms,則判斷為兩個(gè)獨(dú)立的字符串;如果小于50ms,則自動(dòng)拼接前后兩個(gè)字符串。



          關(guān)鍵詞: LabVIEW串口通信的示波

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();