我正嘗試在Matlab中構建一個串行端口設備。我有2個設備'COM1'和'COM2'。 'COM1'ASYNCHROUNOUSLY將數據寫入串口'COM2'。我有關於「COM1」和「COM2」替代名稱,如下所示:使用Matlab中的字節可用函數在串行端口之間讀取
global serialcom
serialcom=serial('COM1'); %Serial Communication portal COM 1
global testdummy
testdummy=serial('COM2'); %Serial Communication portal COM 2
字節在testdummy這觸發testdummyfunction是2的輸入緩衝器的數量,並且這是使用testdummy指定。 BytesAvailableFcnCount字段(belo)。
testdummy.BytesAvailableFcnMode = 'Byte';
testdummy.BytesAvailableFcnCount = 2;
testdummy.BytesAvailableFcn = @testdummycomfunction;
我有在其上使用Matlab.The結構中的信息bytesAvailable回調財產引發的testdummy側的功能「testdummyfunction」的這一功能如下:
function testdummyfunction(testdummy,BytesAvailable)
% TESTDUMMYFUNCTION(testdummy,...BytesAvailable)
% INPUTS:
% TESTDUMMY:refers to the serial port testdummy
% BYTESAVAILABLE:Refers to the callback function 'BytesAvailablefunction'
global serialcom;
data_string=fscanf(serialcom); %Reads the data sent form serialcom
end
現在,假設我將一個長度大於2個字節的字符串(比如10個字節)異步地輸出到serialcom端的testdummy端。雖然我知道testdummyfunction在testdummy的輸入緩衝區中有2個字節時觸發,那麼data_string也會包含一個2字節長的字符串。 如果不是,我怎樣才能確保它只讀取2個字節的數據?
謝謝!正是我需要的。 –