이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

fscanf (serial)

장치에서 ASCII 데이터를 텍스트 형식으로 읽기

구문

A = fscanf(obj)
A = fscanf(obj,'format')
A = fscanf(obj,'format',size)
[A,count] = fscanf(...)
[A,count,msg] = fscanf(...)

설명

A = fscanf(obj)는 직렬 포트 객체 obj에 연결된 장치에서 ASCII 데이터를 읽고 이를 A로 반환합니다. 데이터는 %c 형식을 사용하여 텍스트로 변환됩니다. 이진 데이터의 경우 fread를 사용하십시오.

A = fscanf(obj,'format')은 데이터를 읽고 format에 따라 변환합니다. format은 C 언어 변환 사양입니다. 변환 사양에는 % 문자와 변환 문자 d, i, o, u, x, X, f, e, E, g, G, c, s가 포함됩니다. 자세한 내용은 sscanf 파일 I/O 형식 사양 또는 C 매뉴얼을 참조하십시오.

A = fscanf(obj,'format',size)size로 지정된 개수의 값을 읽습니다. size에 유효한 옵션은 다음과 같습니다.

n

최대 n개 값을 열 벡터로 읽어들입니다.

[m,n]

최대 mxn개 값을 읽고 mxn 행렬을 열 순서대로 채웁니다.

sizeinf일 수 없으며 지정된 개수의 값을 입력 버퍼에 저장할 수 없는 경우 오류가 반환됩니다. size[m,n] 형식이 아닌데 문자 변환이 지정된 경우 A는 행 벡터로 반환됩니다. InputBufferSize 속성을 사용하여 입력 버퍼의 크기(바이트)를 지정할 수 있습니다. ASCII 값은 1바이트입니다.

[A,count] = fscanf(...)count로 읽은 값 개수를 반환합니다.

[A,count,msg] = fscanf(...)는 읽기 작업이 성공적으로 완료되지 않은 경우 msg로 경고 메시지를 반환합니다.

예제

직렬 포트 객체 s를 만들고 사인파를 표시하는 Tektronix® TDS 210 오실로스코프에 s를 연결합니다. 이 예제는 Windows® 플랫폼에서 동작합니다.

s = serial('COM1');
fopen(s)

fprintf 함수를 사용하여 사인파의 피크 간(Peak-to-peak) 전압을 측정하고, 측정 유형을 반환하고, 피크 간 전압을 반환하도록 오실로스코프를 구성합니다.

fprintf(s,'MEASUREMENT:IMMED:TYPE PK2PK')
fprintf(s,'MEASUREMENT:IMMED:TYPE?')
fprintf(s,'MEASUREMENT:IMMED:VALUE?')

ReadAsyncMode 속성의 디폴트 값은 continuous이므로 두 쿼리 명령과 연결된 데이터는 자동으로 입력 버퍼로 반환됩니다.

s.BytesAvailable
ans =
    21

fscanf를 사용하여 측정 유형을 읽습니다. 첫 번째 종결자를 읽으면 작업이 완료됩니다.

meas = fscanf(s)
meas =
PK2PK

fscanf를 사용하여 피크 간(Peak-to-peak) 전압을 부동소수점 숫자로 읽고 종결자를 제외합니다.

pk2pk = fscanf(s,'%e',14)
pk2pk =
    2.0200

오실로스코프에서 s의 연결을 끊고 메모리와 작업 공간에서 s를 제거합니다.

fclose(s)
delete(s)
clear s

장치에서 데이터를 읽으려면 fopen 함수를 사용하여 obj에 장치가 연결되어 있어야 합니다. 연결된 직렬 포트 객체는 Status 속성값으로 open을 갖습니다. obj가 장치에 연결되어 있지 않은 상태에서 읽기 작업을 수행하려고 하면 오류가 반환됩니다.

msg가 출력 인수로 포함되지 않은 상태에서 읽기 작업이 실패하면 명령줄로 경고 메시지가 반환됩니다.

fscanf가 실행될 때마다 종결자를 포함하여 읽은 값의 개수만큼 ValuesReceived 속성값이 증가합니다.

fscanf를 사용한 읽기 작업을 완료하기 위한 규칙

fscanf를 사용한 읽기 작업은 다음 시점에 MATLAB® 명령줄에 대한 액세스를 차단합니다.

  • Terminator 속성으로 지정된 종결자를 읽으면

  • Timeout 속성으로 지정된 시간이 경과하면

  • size로 지정된 개수의 값을 읽으면

  • 입력 버퍼가 채워질 때까지(size가 지정된 경우는 제외)

R2006a 이전에 개발됨