fscanf (serial)

(Не рекомендуемый), Считанные данные о ASCII из устройства, и форматируют как текст

Этот serial объектная функция не рекомендуется. Используйте 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формат спецификация преобразования языка C. Спецификации преобразования включают % символ и символы преобразования d, i, 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 не включен как выходной аргумент, и операция чтения не была успешна, затем предупреждающее сообщение возвращено в командную строку.

ValuesReceived значение свойства увеличено на количество чтения значений – включая терминатор строки – каждый раз fscanf выпущен.

Правила для Завершения Операции чтения с fscanf

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

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

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

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

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

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

развернуть все

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

Смотрите также

Функции

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