코드를 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
116resp = 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.PinStatusans =
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