코드를 serialport
인터페이스로 전환하기
serial
함수와 그 객체 함수 및 속성은 제거될 예정입니다. serialport
를 대신 사용하십시오.
serial 인터페이스 | serialport 인터페이스 | 예 |
---|---|---|
seriallist | serialportlist | 직렬 포트 장치 검색하기 |
instrfind 및 instrfindall | serialportfind | 기존 직렬 포트 연결 찾기 |
serial 및 fopen | serialport | 직렬 포트 장치에 연결하기 |
fwrite | write | 읽기와 쓰기 |
fread | read | |
fprintf | writeline | 명령 전송하기 |
fscanf | readline | 종결 문자열 읽어오기 |
fgetl | ||
fgets | ||
flushinput 및 flushoutput | flush | 메모리에서 데이터 플러시하기 |
Terminator | configureTerminator | 종결자 설정하기 |
BytesAvailableFcnCount , BytesAvailableFcnMode , BytesAvailableFcn 및 BytesAvailable | configureCallback 및 NumBytesAvailable | 콜백 함수 설정하기 |
PinStatus | getpinstatus | 직렬 핀 상태 읽어오기 |
DataTerminalReady 및 RequestToSend | setDTR 및 setRTS | 직렬 DTR 핀 및 RTS 핀 상태 설정하기 |
ErrorFcn | ErrorOccurredFcn | |
fclose | clear 및 delete | 직렬 포트 연결 끊기 |
제거되는 기능
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
를 대신 사용하십시오.
기존 직렬 포트 연결 찾기
instrfind
와 instrfindall
은 제거될 예정입니다. 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" |
명령 전송하기
이 예제에서는 권장되는 기능을 사용하여 종결 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)
|
자세한 내용은 configureTerminator
또는 writeline
항목을 참조하십시오.
종결 문자열 읽어오기
이 예제에서는 권장되는 기능을 사용하여 종결 문자열 읽기를 수행하는 방법을 보여줍니다.
기능 | 대체 기능 |
---|---|
% s is a serial object fprintf(s,"MEASUREMENT:IMMED:TYPE PK2PK") a = fscanf(s,"%e",6) a = 2.0200 형식 지정자 | % 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'
| % 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"
|
% 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 '
|
자세한 내용은 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) |
직렬 포트 연결 끊기
fclose
함수는 업데이트된 인터페이스에서 사용할 수 없습니다. 직렬 포트 연결을 끊으려면, 단일 작업 공간에서 작업 중인지 여러 개의 작업 공간에서 작업 중인지에 따라 clear
또는 delete
를 대신 사용하십시오. 자세한 내용은 serialport
함수 도움말 페이지의 다음 예제를 참조하십시오.
참고 항목
serialportlist
| serialport
| serialportfind
(Instrument Control Toolbox) | serialportfind