(Подлежит удалению) Считывание данных 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. format - спецификация преобразования языка Си. Спецификации преобразования включают % и символы преобразования d, i, o, u, x, X, f, e, E, g, G, c и s. См. sscanf спецификации формата ввода-вывода файла или руководство C для получения дополнительной информации.
A = fscanf(obj,' считывает количество значений, указанных format',size)size. Допустимые параметры для size являются:
| Читать максимум |
| Считывайте максимум значения m-by-n, заполняющие матрицу m-by-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 блокирует доступ к командной строке MATLAB ® до:
Терминатор, указанный Terminator свойство прочитано.
Время, указанное Timeout проходит свойство.
Количество значений, указанных size считывается.
Входной буфер заполнен (за исключением случаев, когда size указано)