(Будет удален) Чтение данных 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
являются:
| Читать самое большее |
| Считайте самое большее значения 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
выдается.
Операция чтения с fscanf
блокирует доступ к MATLAB® командная строка до:
Терминатор строки, заданный как Terminator
свойство считывается.
Время, заданное как Timeout
проходит свойство.
Количество значений, заданное как size
считывается.
Входной буфер заполнен (если только size
задан)