基于Matlab GUI的串口通信編程實(shí)現(xiàn)
3.1 編譯程序
為了對(duì)代碼進(jìn)行保密,以及方便用戶發(fā)布可以在不同平臺(tái)運(yùn)行的可執(zhí)行程序,Matlab提供了Matlab程序編譯與發(fā)布功能。在進(jìn)行Matlab程序編譯之前,需要設(shè)置編譯工具。在Matlab命令窗口中,輸入運(yùn)行mbuild-setup,進(jìn)行編譯工具設(shè)置。如圖4所示。本文引用地址:http://cafeforensic.com/article/157311.htm
mbuild-setup命令運(yùn)行后,Matlab會(huì)檢測(cè)已經(jīng)安裝在本機(jī)上的編譯器,用戶可以自行選擇任意一個(gè)編譯器,選擇完畢后,運(yùn)行編譯命令,Matlab將使用用戶選定的編譯器對(duì)程序進(jìn)行編譯。
設(shè)置完畢編譯工具后,即可以在命令窗口中運(yùn)行編譯命令,將Matlab程序編譯成可執(zhí)行程序。命令格式為:
mcc[-options]mifilel[mfile2…mfileN];
options為編譯參數(shù);mfilel為待編譯的Matlab文件,如果包含多個(gè)Matlab文件,可以直接列在mfilel后面。
如將一個(gè)文件名為myfun.m的Matlab文件編譯成一個(gè)獨(dú)立可執(zhí)行程序,可以使用mcc命令:
mcc-m myfun:
mcc命令可以用使用多個(gè)編譯參數(shù),相應(yīng)參數(shù)的含義可以參見Matlab幫助文檔。
3.2 發(fā)布程序
Matlab文件編譯完畢后,生成的可執(zhí)行程序還需要.Matlab環(huán)境的支持,要發(fā)布到?jīng)]有安裝Matlab的機(jī)器上運(yùn)行,還需要進(jìn)行最后一項(xiàng)工作,即打包Matlab組件運(yùn)行環(huán)境(Matlab Component Runtime,MCR)。將MCR與可執(zhí)行程序一起打包,拷貝到其他沒有安裝Matlab的機(jī)器上,在該機(jī)器上安裝MCR,安裝完畢即可以直接在該機(jī)器上運(yùn)行編譯的Matlab可執(zhí)行程序。MCR安裝文件位于:
Matlab Root\toolbox\compiler\deploy\win32
在2008版Matlab中,已經(jīng)內(nèi)置了Matlab編譯發(fā)布工具箱,在Matlab命令窗口中運(yùn)行deploytool命令,即可以調(diào)出該工具窗口,通過該工具可以方便、快捷地編譯發(fā)布Matlab程序。
4 結(jié)語
Matlab具有強(qiáng)大的科學(xué)計(jì)算功能和圖形顯示功能,選用Matlab作為數(shù)據(jù)處理與分析工具是合適的,但其界面開發(fā)和數(shù)據(jù)采集功能相對(duì)較弱,不如VisualC++或者LabView強(qiáng)大。不過,對(duì)于一般的界面開發(fā),和普通功能的串口通信開發(fā),Matlab是足以勝任的,同時(shí)也可以直接利用其強(qiáng)大的數(shù)據(jù)分析與處理功能。本文基于Matlab GUI的串口通信功能的編程實(shí)現(xiàn)表明利用Matlab GUI可以進(jìn)行包含一般界面元素的界面開發(fā),在此基礎(chǔ)上,加入串口通信功能,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)采集與分析處理,并進(jìn)行圖形化顯示。
評(píng)論