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 속성은 제거될 예정입니다.

직렬 포트 장치 검색하기

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

기존 직렬 포트 연결 찾기

instrfindinstrfindall은 제거될 예정입니다. serialportfind를 대신 사용하십시오. (R2024a 이후)

직렬 포트 장치에 연결하기

다음 표에서는 권장되는 기능을 사용하여 직렬 포트 장치에 연결하는 방법을 보여줍니다.

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

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

자세한 내용은 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 항목을 참조하십시오.

직렬 포트 연결 끊기

fclose 함수는 업데이트된 인터페이스에서 사용할 수 없습니다. 직렬 포트 연결을 끊으려면, 단일 작업 공간에서 작업 중인지 여러 개의 작업 공간에서 작업 중인지에 따라 clear 또는 delete를 대신 사용하십시오. 자세한 내용은 serialport 함수 도움말 페이지의 다음 예제를 참조하십시오.

참고 항목

| | (Instrument Control Toolbox) |

관련 항목