(последовательный) fprintf

Запишите текст в устройство

Синтаксис

fprintf(obj,'cmd')
fprintf(obj,'format','cmd')
fprintf(obj,'cmd','mode')
fprintf(obj,'format','cmd','mode')

Описание

fprintf(obj,'cmd') пишет строка cmd в устройство, соединенное к объекту последовательного порта, obj. Форматом по умолчанию является %s\n. Операция записи синхронна и блокирует командную строку, пока выполнение не завершается. cmd может быть или командой SCPI, которую вы обеспечиваете, или команда, которую вы обеспечиваете на основе инструкций от вашего поставщика устройства.

fprintf(obj,'format','cmd') пишет строка с помощью формата, заданного format.

fprintf(obj,'cmd','mode') пишет строка с доступом из коммандной строки, заданным mode. mode задает, записан ли cmd синхронно или асинхронно.

fprintf(obj,'format','cmd','mode') пишет строка с помощью заданного формата. format является спецификацией преобразования языка C.

Вам нужна открытая связь от объекта последовательного порта, obj, к устройству прежде, чем выполнить операции чтения или операции записи.

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

Чтобы понять использование fprintf, обратитесь к Завершению Операции записи с fprintf и Правилами для Записи Терминатора.

Входные параметры

format

ANSI C спецификация преобразования включает эти символы преобразования.

Спецификатор

Описание

%c

Отдельный символ

%d или %i

Десятичная запись (подписывается)

%e

Экспоненциальное представление (использующий строчный e в качестве в 3.1415e+00)

%E

Экспоненциальное представление (использующий прописной E в качестве в 3.1415E+00)

%f

Представление с фиксированной точкой

%g

Более компактный из %e или %f. Незначительные нули не распечатывают.

%G

То же самое как %g, но использование прописного E

%o

Восьмеричное обозначение (без знака)

%s

Строка символов

%u

Десятичная запись (без знака)

%x

Шестнадцатеричное обозначение (использующий строчные буквы af)

%X

Шестнадцатеричное обозначение (использующий прописные буквы AF)

cmd

Задает строку cmd, который может быть или командой SCPI, которую вы обеспечиваете, или команда, которую вы обеспечиваете на основе инструкций от вашего поставщика устройства.

mode

Задает, записана ли строка cmd синхронно или асинхронно:

  • sync: cmd записан синхронно, и командная строка блокируется.

  • async: cmd записан асинхронно, и командная строка не блокируется.

Если mode не задан, операция записи синхронна.

Если вы задаете асинхронный mode, когда операция записи происходит:

  • Значение свойства BytesToOutput постоянно обновляет, чтобы отразить количество байтов в буфере вывода.

  • Функция обратного вызова файла MATLAB®, заданная для свойства OutputEmptyFcn, выполняется, когда буфер вывода пуст.

Чтобы определить, происходит ли асинхронная операция записи, используйте свойство TransferStatus.

Для получения дополнительной информации о синхронных и асинхронных операциях записи смотрите Запись и чтение данных.

Примеры

Создайте объект последовательного порта s и соедините его с осциллографом Tektronix TDS 210. Запишите команду RS232? с fprintf. RS232? дает осциллографу команду возвращать коммуникационные настройки последовательного порта. Этот пример работает над платформой Windows®.

s = serial('COM1');
fopen(s)
fprintf(s,'RS232?')

Задайте формат для данных, которые не включают терминатор строки или конфигурируют терминатор строки, чтобы опустеть.

s = serial('COM1');
fopen(s)
fprintf(s,'%s','RS232?')

Форматом по умолчанию для fprintf является %s\n. Поэтому терминатор строки, заданный свойством Terminator, автоматически записан. Однако иногда вы можете хотеть подавить запись терминатора строки.

Задайте массив форматов и команд:

s = serial('COM1');
fopen(s)
fprintf(s,['ch:%d scale:%d'],[1 20e-3],'sync')

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