MATLAB GUIDE 上位機串口通信開發 繪制圖形


本人因項目需求,需要開發這個串口通信上位機界面,用於實時繪制串口發送過來的數據。本人之前基本沒使用過MATLAB,也就知道個zeros(100)這種在命令行窗口中輸入的函數。至於MATLAB能開發圖形界面程序,我也是在接到這個項目后才知道的,emmm,我被我的無知嚇到了。好了,這就是我開發這個上位機軟件的背景和我本人的MATLAB技術水平(渣渣)。在不到兩天的時間內開發完成,通過了調試。下面記錄一下我這個開發的歷程和一些細節。

MATLAB上位機軟件怎么開發?

不要見笑,我一個MATLAB小白真不知道怎么開發,更不知道GUIDE這種東東。
所以,MATLAB上位機軟件就是從GUIDE開始的。

GUIDE在哪里?

你可以通過兩個方式找到他:
1)命令行窗口:guide(回車就見到他了)
2)MATLAB界面 -> 新建 -> 圖形用戶界面 (點擊也能看到他)

如何開發?

有開發經驗的就繞道了哦,我這是第一次用MATLAB開發,所以比較“啰嗦”
看到這個問題,沒有開發經驗的小白們,是不是第一就想到了“百度一下,你就知道”,我呢,就不推薦這個了,我推薦用MATLAB的幫助文檔。這個幫助文檔可以在MATLAB主界面中工具欄右側的“幫助”選項中找到。P.S. 幫助文檔是學習軟件的第一手資料!!!英文看不懂的就只能百度了

在調出“幫助瀏覽器”后,在搜索欄輸入“guide”在搜索的內容點擊第一個“guide-Open GUIDE”,進入后,下面有個“More About”,里面有個“Create a Simple UI Using GUIDE”,點進去,然后按照里面官方的指導,學一下如何建立一個上位機軟件。

實現后,仔細體驗一下里面的回調函數(類似於Qt里面的槽函數)。

我是如何開發的呢?

建立一個空白的區域后,就要開始構思自己需要哪些控件了,如圖是我的控件添加情況:

經過官方教程的學習,詳細你已經有能力往下拉菜單中添加COM口信息了,我添加到了COM21。
這里一定要自己定義Tag標簽,如下圖,其他按鈕的Tag我就不展示了。

現在在下拉菜單上右鍵,選擇“Callback” 如圖:

里面的執行函數我已經寫好了,不過在最后一定要加上一個語句,否則選定的COM端口不會被保存的
​ guidata(hObject, handles);% 保存配置

打開串口的按鈕回調程序是這樣的,同樣的下面的語句是必不可少的,否則配置的串口信息都會丟失的

​ guidata(hObject, handles);% 保存配置

里面關於串口的配置信息,可以打開幫助瀏覽器,搜索“serial” 或者“Serial Port Devices”你會發現一個新世界,當然配合百度你會學的更快

關閉串口的回調程序,按照套路很好編出來的。

串口開發(敲黑板,划重點)

主要就是串口接收數據的函數,因為串口發送的數據為8位(串口決定的),而我的采集數據為16位保存的,所以,在發送時一定要將16位的數據分割一下。舉個例子,一個16位的振動數據本來是占一個坑,將此16位數據分成高8位和低8位保存后,每個8位占一個坑,現在一個振動數據就占了兩個坑。通過串口發送要發送兩次才能發送出去一個完整的振動數據,因此在MATLAB接收端應該設計一個算法,將接收的兩個8位的振動數據重新合並為原來的一個16位的振動數據。這就是一個簡單的通信協議開發。在MATLAB端合並數據一定要注意,傳過來的數據是8位的,但MATLAB默認的變量為double型的,所以,這里要對接受串口數據的變量做強制轉換,然后在做相應的移位處理。才行。如下圖所示:

最后結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM