fwrite (serial)

(Будет удален) Запись двоичных данных на устройство

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

Синтаксис

fwrite(obj,A)
fwrite(obj,A,'precision')
fwrite(obj,A,'mode')
fwrite(obj,A,'precision','mode')

Описание

fwrite(obj,A) записывает двоичные данные A к устройству, подключенному к объекту последовательного порта, obj.

fwrite(obj,A,'precision') записывает двоичные данные с точностью, заданной precision.

precision управляет количеством бит, записанных для каждого значения, и интерпретацией этих бит как целое число, с плавающей точкой или значения символов. Если precision не задан, uchar (используется 8-битный беззнаковый символ). Поддерживаемые значения для precision перечислены в советах.

fwrite(obj,A,'mode') записывает двоичные данные с доступом из коммандной строки, заданным mode. Если mode является sync, A записывается синхронно, и командная строка блокируется. Если mode является async, A записывается асинхронно, и командная строка не блокируется. Если mode не задан, операция записи является синхронной.

fwrite(obj,A,'precision','mode') записывает двоичные данные с точностью, заданной precision и доступ из коммандной строки, заданный mode.

Совет

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

The ValuesSent значение свойства увеличивается на количество значений, записываемых каждый раз fwrite выдается.

Ошибка возникает, если выходной буфер не может содержать все записываемые данные. Размер выходного буфера можно задать с помощью OutputBufferSize свойство.

Если вы задаете FlowControl (Instrument Control Toolbox) свойство для hardware для последовательного объекта и оборудования соединения не обнаружено, fwrite возвращает сообщение об ошибке. Это происходит, если устройство не подключено или подключенное устройство не утверждает, что готово к приему данных. Проверьте состояние удаленного устройства и настройки управления потоком, чтобы увидеть, вызывает ли аппаратное управление потоком ошибок в MATLAB®.

Примечание

Если вы хотите проверить, уверяет ли устройство, что оно готово к получению данных, установите FlowControl (Instrument Control Toolbox) для none. После подключения к устройству проверьте PinStatus структура для ClearToSend. Если ClearToSend является off, существует проблема на стороне удаленного устройства. Если ClearToSend является on, есть оборудование FlowControl (Instrument Control Toolbox) устройство подготовлено для приема данных, и вы можете выполнить fwrite.

Операции синхронной и асинхронной записи

По умолчанию данные записываются на устройство синхронно, и командная строка блокируется до завершения операции. Вы можете выполнить асинхронную запись, сконфигурировав mode входной параметр, который будет async. Для асинхронных записей:

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

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

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

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

Двоичная операция записи с использованием fwrite завершается, когда:

  • Указанные данные записываются.

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

    Примечание

    The Terminator свойство не используется с двоичными операциями записи.

Поддерживаемые точности

В следующей таблице показаны поддерживаемые значения для precision.

Тип данных

Точность

Интерпретация

Символ

uchar

8-битный беззнаковый символ

schar

8-битный символ со знаком

char

8-битный символ со знаком или без знака

Целое число

int8

8-битное целое число

int16

16-битное целое число

int32

32-битное целое число

uint8

8-битное беззнаковое целое число

uint16

16-битное беззнаковое целое число

uint32

32-битное беззнаковое целое число

short

16-битное целое число

int

32-битное целое число

long

32- или 64-битное целое число

ushort

16-битное беззнаковое целое число

uint

32-битное беззнаковое целое число

ulong

32- или 64-разрядное беззнаковое целое число

С плавающей точкой

single

32-битная плавающая точка

float32

32-битная плавающая точка

float

32-битная плавающая точка

double

64-битная плавающая точка

float64

64-битная плавающая точка

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

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

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

См. также

Функции

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