fwrite (serial)

(Не рекомендуемый) двоичные данные Записи устройству

Этот serial объектная функция не рекомендуется. Используйте 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 syncA записан синхронно, и командная строка блокируется. Если mode asyncA записан асинхронно, и командная строка не блокируется. Если mode не задан, операция записи синхронна.

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

Советы

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

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

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

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

Примечание

Если вы хотите проверять, чтобы видеть, утверждает ли устройство, что это готово получить данные, установите FlowControl к none. Если вы связываете с устройством, проверяйте PinStatus структура для ClearToSend. Если ClearToSend off, на стороне удаленного устройства существует проблема. Если ClearToSend on, существует оборудование FlowControl устройство подготовилось получать данные, и можно выполнить fwrite.

Синхронный по сравнению с асинхронными операциями записи

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

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

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

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

Синхронные и асинхронные операции записи обсуждены более подробно в Записи и чтении данных.

Правила для Завершения Операции записи с fwrite

Бинарная операция записи с помощью fwrite завершается когда:

  • Заданные данные записаны.

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

    Примечание

    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