Main Content

코드를 serialport 인터페이스로 전환하기

serial 함수와 그 객체 함수 및 속성은 제거될 예정입니다. serialport를 대신 사용하십시오.

제거되는 기능

ValuesReceived 속성 및 ValuesSent 속성은 제거될 예정입니다. NumBytesAvailable 속성과 사용할 수 있는 데이터의 데이터형을 사용하여 전송된 값의 개수를 계산할 수 있습니다. 예를 들어, NumBytesAvailable이 20바이트의 uint32 데이터라면 각 uint32 값이 4바이트이므로 전송된 값의 개수는 5입니다.

readasync 함수와 stopasync 함수, ReadAsyncMode 속성과 TransferStatus 속성은 제거될 예정입니다. 업데이트된 인터페이스가 비동기식으로 데이터를 읽어옵니다.

BytesToOutput 속성, InputBufferSize 속성 및 OutputBufferSize 속성은 제거될 예정입니다. 버퍼 크기는 자동으로 관리되며 필요에 따라 크기가 조정됩니다.

BreakInterruptFcn 속성, OutputEmptyFcn 속성 및 PinStatusFcn 속성은 제거될 예정입니다. 업데이트된 인터페이스에서 configureCallback을 사용하여 콜백 함수를 설정할 수 있지만, 이들 속성에 대해서는 설정할 수 없습니다.

RecordDetail 속성, RecordMode 속성, RecordName 속성 및 RecordStatus 속성은 제거될 예정입니다.

TimerFcn 속성 및 TimerPeriod 속성은 제거될 예정입니다. timer를 대신 사용하십시오.

Name 속성, Type 속성, ObjectVisibility 속성, Status 속성 및 Tag 속성은 제거될 예정입니다.

직렬 포트 장치 검색하기

seriallist는 제거될 예정입니다. serialportlist를 대신 사용하십시오.

직렬 포트 장치에 연결하기

이 예제에서는 권장되는 기능을 사용하여 직렬 포트 장치에 연결하고 연결을 해제하는 방법을 보여줍니다.

기능대체 기능
s = serial("COM1");
s.BaudRate = 115200;
fopen(s)
s = serialport("COM1",115200);
fclose(s)
delete(s)
clear s
clear s

fopen 함수는 업데이트된 인터페이스에서 사용할 수 없습니다. 객체 생성 함수 serialport는 객체를 생성하고 장치에 객체를 연결합니다.

fclose 함수는 업데이트된 인터페이스에서 사용할 수 없습니다. clear 함수는 작업 공간에서 객체를 제거할 때 객체를 장치에서 연결 해제합니다.

자세한 내용은 serialport 항목을 참조하십시오.

읽기와 쓰기

다음 예제에서는 권장되는 기능을 사용하여, 루프백 장치에서 이진 쓰기 및 읽기를 수행하고 비종결 명령 문자열을 쓰고 고정 길이 응답 문자열을 읽어오는 방법을 보여줍니다.

기능대체 기능
% s is a serial object
fwrite(s,1:5,"uint32")
data = fread(s,5,"uint32")
data =

     1
     2
     3
     4
     5
% s is a serialport object
write(s,1:5,"uint32")
data = read(s,5,"uint32")
data =

     1     2     3     4     5
% s is a serial object
command = "start";
fwrite(s,command,"char")
% s is a serialport object
command = "start";
write(s,command,"char")
% s is a serialport object
command = "start";
write(s,command,"string")
% s is a serial object
length = 5;
resp = fread(s,length,"char")
resp =

   115
   116
    97
   114
   116
resp = char(resp)'
resp =

    'start'
% s is a serialport object
length = 5;
resp = read(s,length,"string")
resp =

    "start"

자세한 내용은 write 또는 read 항목을 참조하십시오.

명령 전송하기

이 예제에서는 권장되는 기능을 사용하여 종결 SCPI 명령을 작성하는 방법을 보여줍니다.

기능대체 기능
% s is a serial object
s.Terminator = "CR/LF"
channel = 1;
level = 3.44;
fprintf(s,"TRIGGER%d:LEVEL2 %1.2f",[channel,level]);
% s is a serialport object
configureTerminator(s,"CR/LF")
channel = 1;
level = 3.44;
cmd = sprintf("TRIGGER%d:LEVEL2 %1.2f",[channel,level]);
writeline(s,cmd)

writeline은 자동으로 쓰기 종결자를 추가합니다.

자세한 내용은 configureTerminator 또는 writeline 항목을 참조하십시오.

종결 문자열 읽어오기

이 예제에서는 권장되는 기능을 사용하여 종결 문자열 읽기를 수행하는 방법을 보여줍니다.

기능대체 기능
% s is a serial object
fprintf(s,"MEASUREMENT:IMMED:TYPE PK2PK")
a = fscanf(s,"%e",6)
a =

    2.0200

형식 지정자 "%e"의 경우 fscanf가 종결자를 반환하므로 사용자가 문자열에서 이를 제거해야 합니다.

% s is a serialport object
writeline(s,"MEASUREMENT:IMMED:TYPE PK2PK")
a = readline(s)
a = 

    "2.0200"
sscanf(a,"%e")
a =

    2.0200
% s is a serial object
fprintf(s,"*IDN?")
a = fgetl(s)
a =

    'TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16'

fgetl은 지정된 종결자에 도달할 때까지 읽은 다음, 그 종결자를 무시합니다.

% s is a serialport object
writeline(s,"*IDN?")
a = readline(s)
a = 

    "TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04"

readline은 지정된 종결자에 도달할 때까지 읽은 다음, 그 종결자를 무시합니다. 종결자를 포함하는 옵션은 없습니다.

% s is a serial object
fprintf(s,"*IDN?")
a = fgets(s)
a =

    'TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04
     '

fgets는 지정된 종결자에 도달할 때까지 읽은 다음, 그 종결자를 반환합니다.

자세한 내용은 readline 항목을 참조하십시오.

메모리에서 데이터 플러시하기

이 예제에서는 권장되는 기능을 사용하여 버퍼에서 데이터를 플러시하는 방법을 보여줍니다.

기능대체 기능
% s is a serial object
flushinput(s)
% s is a serialport object
flush(s,"input")
% s is a serial object
flushoutput(s)
% s is a serialport object
flush(s,"output")
% s is a serial object
flushinput(s)
flushoutput(s)
% s is a serialport object
flush(s)

자세한 내용은 flush 항목을 참조하십시오.

종결자 설정하기

이 예제에서는 권장되는 기능을 사용하여 종결자를 설정하는 방법을 보여줍니다.

기능대체 기능
% s is a serial object
s.Terminator = "CR/LF";
% s is a serialport object
configureTerminator(s,"CR/LF")
% s is a serial object
s.Terminator = {"CR/LF" [10]};
% s is a serialport object
configureTerminator(s,"CR/LF",10)

자세한 내용은 configureTerminator 항목을 참조하십시오.

콜백 함수 설정하기

이 예제에서는 권장되는 기능을 사용하여 루프백 장치에서 콜백 함수를 설정하는 방법을 보여줍니다.

기능대체 기능
s = serial("COM5","BaudRate",115200)
s.BytesAvailableFcnCount = 5
s.BytesAvailableFcnMode = "byte"
s.BytesAvailableFcn = @instrcallback

fopen(s)

function instrcallback(src,evt)
   data = fread(src,src.BytesAvailable)
   disp(evt)
   disp(evt.Data)
end
data =

     1
     2
     3
     4
     5

    Type: 'BytesAvailable'
    Data: [1×1 struct]

    AbsTime: [2019 5 2 16 35 9.6710]
s = serialport("COM5",115200)
configureCallback(s,"byte",5,@instrcallback);

function instrcallback(src,evt)
   data = read(src,src.NumBytesAvailable,"uint8")
   disp(evt)
end
data =

     1     2     3     4     5

  DataAvailableInfo with properties:

    BytesAvailableFcnCount: 5
                   AbsTime: 02-May-2019 15:54:09

자세한 내용은 configureCallback 항목을 참조하십시오.

직렬 핀 상태 읽어오기

이 예제에서는 권장되는 기능을 사용하여 직렬 핀 상태를 읽어오는 방법을 보여줍니다.

기능대체 기능
% s is a serial object
s.PinStatus
ans = 

  struct with fields:

    CarrierDetect: 'on'
      ClearToSend: 'on'
     DataSetReady: 'on'
    RingIndicator: 'on'
% s is a serialport object
status = getpinstatus(s)
status = 

  struct with fields:

      ClearToSend: 1
     DataSetReady: 1
    CarrierDetect: 1
    RingIndicator: 1

자세한 내용은 getpinstatus 항목을 참조하십시오.

직렬 DTR 핀 및 RTS 핀 상태 설정하기

이 예제에서는 권장되는 기능을 사용하여 직렬 DTR 핀 및 RTS 핀 상태를 설정하는 방법을 보여줍니다.

기능대체 기능
% s is a serial object
s.DataTerminalReady = "on";
% s is a serialport object
setDTR(s,true)
% s is a serial object
s.RequestToSend = "off";
% s is a serialport object
setRTS(s,false)

자세한 내용은 setDTR 또는 setRTS 항목을 참조하십시오.

참고 항목

|

관련 항목