MATLAB讀取串口數據serialport


MATLAB從R2019b開始不建議使用serial創建串口對象 並建議改用serialport及其屬性,在R2020b以后的版本中使用serial可能會報錯。在寫這篇文章時,網上幾乎所有使用MATLAB讀取串口數據的教程都在使用serial。本文主要介紹在MATLAB R2020b環境下使用serialport及其屬性讀取串口數據的一種方法。

參考MATLAB中serial的文檔,初始化串口對象的方法:

s = serialport(port,baudrate)

port是串口號,baudrate是波特率。

使用serial時需要使用fopen與fclose打開與關閉串口,這個方法可以直接使用read等方法讀取數據,避免了串口的打開與關閉可能引起的錯誤。

configureCallback(device,"terminator",callbackFcn) 將 callbackFcn 設置為在終止符可供讀取時觸發。

configureCallback(device,"byte",count,callbackFcn) 將 callbackFcn 設置為在 count 字節數可供讀取時觸發。

configureCallback(device,"off") 關閉回調。

serialport 對象 BytesAvailableFcnMode 屬性指示模式為 "terminator"、"byte" 或 "off"。BytesAvailableFcn 屬性指示 callbackFcn 指定的回調函數。BytesAvailableFcnCount 屬性指示 count 設置。

回調函數包含兩個參數,官方提供的例子:

主程序代碼:

clear

port = 'com4';
baudrate = 115200;

s = serialport(port,baudrate);

configureCallback(s,"byte",1,@serial_callback)

pause

configureCallback(s,"off")

回調函數:

function serial_callback(s,~)
data = read(s,1,"uint8");
disp(data)
end

We happy.


免責聲明!

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



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