fscanf (serial)

(Будет удален) Чтение данных ASCII с устройства и формат как текста

Этот serial функция object будет удалена в следующем релизе. Использовать serialport вместо этого функции объекта. См. Вопросы совместимости.

Синтаксис

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

Описание

A = fscanf(obj) считывает данные ASCII с устройства, подключенного к объекту последовательного порта, obj, и возвращает его к A. Данные преобразуются в текст с помощью %c формат. Для двоичных данных используйте fread.

A = fscanf(obj,'format') считывает данные и преобразует их в соответствии с format. format является спецификацией преобразования языка C. Спецификации преобразования включают в себя % символ и конверсионные символы d, я, o, u, x, X, f, e, E, g, G, c, и s. Обратитесь к sscanf спецификации формата ввода-вывода файла или руководство на C для получения дополнительной информации.

A = fscanf(obj,'format',size) считывает количество значений, заданное в size. Допустимые опции для size являются:

n

Читать самое большее n значения в вектор-столбец.

[m,n]

Считайте самое большее значения m на n, заполняя матрицу m на n в порядке столбца.

size невозможно infи возвращается ошибка, если указанное количество значений не может быть сохранено в вход буфере. Если size не является формой [m,n], и задается преобразование символов, затем A возвращается как вектор-строка. Вы задаете размер, в байтах, входе буфера с InputBufferSize свойство. Значение ASCII является одним байтом.

[A,count] = fscanf(...) возвращает количество значений, считанных в count.

[A,count,msg] = fscanf(...) возвращает предупреждающее сообщение в msg если операция чтения не завершилась успешно.

Примеры

Создайте объект последовательного порта s и соедините s в Tektronix® Осциллограф TDS 210, который отображает синусоиду. Этот пример работает в Windows® платформы.

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

Используйте fprintf функция, чтобы сконфигурировать возможности, чтобы измерить пиковое напряжение синусоиды, вернуть тип измерения и вернуть пиковое напряжение к пиковому напряжению.

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 считывание пикового напряжения в пиковое значение в виде числа с плавающей запятой и исключение терминатора строки.

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

Отсоедините s из возможностей и удалить s из памяти и рабочей области.

fclose(s)
delete(s)
clear s

Совет

Прежде чем вы сможете считать данные с устройства, он должен быть подключен к obj с fopen функция. Связанный объект последовательного порта имеет Status значение свойства open. Ошибка возвращается, если вы пытаетесь выполнить операцию чтения во время obj не подключен к устройству.

Если msg не включен в качестве выходного аргумента и операция чтения не была успешной, затем в командную строку возвращается предупреждающее сообщение.

The ValuesReceived значение свойства увеличивается на количество значений, считанных - включая терминатор строки - каждый раз fscanf выдается.

Правила завершения операции Read с fscanf

Операция чтения с fscanf блокирует доступ к MATLAB® командная строка до:

  • Терминатор строки, заданный как Terminator свойство считывается.

  • Время, заданное как Timeout проходит свойство.

  • Количество значений, заданное как size считывается.

  • Входной буфер заполнен (если только size задан)

Вопросы совместимости

расширить все

Не рекомендуемый запуск в R2019b

См. также

Функции

Представлено до R2006a