Запишите двоичные данные в устройство
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
не соединяется с устройством.
Значение свойства ValuesSent
увеличено количеством значений, записанных каждый раз, когда fwrite
выпущен.
Ошибка происходит, если буфер вывода не может содержать все данные, которые будут записаны. Можно задать размер буфера вывода со свойством OutputBufferSize
.
Если вы устанавливаете свойство FlowControl
на hardware
на последовательном объекте, и аппаратная связь не обнаруживается, fwrite
возвращает сообщение об ошибке. Это происходит, если устройство не соединяется, или подключенное устройство не утверждает, что это готово получить данные. Проверяйте состояние удаленного устройства и настройки управления потоками, чтобы видеть, вызывает ли аппаратное управление потоками ошибки в MATLAB®.
Если вы хотите проверять, чтобы видеть, утверждает ли устройство, что это готово получить данные, установите FlowControl
на none
. Если вы соединяетесь с устройством, проверяйте структуру PinStatus
на ClearToSend
. Если ClearToSend
является off
, на стороне удаленного устройства существует проблема. Если ClearToSend
является on
, существует оборудование, устройство FlowControl
подготовилось получать данные, и можно выполнить fwrite
.
По умолчанию данные записаны в устройство синхронно, и командная строка блокируется, пока операция не завершается. Можно выполнить асинхронную запись путем конфигурирования входного параметра mode
, чтобы быть async
. Для асинхронных записей:
Значение свойства BytesToOutput
постоянно обновляется, чтобы отразить количество байтов в буфере вывода.
Функция обратного вызова, заданная для свойства OutputEmptyFcn
, выполняется, когда буфер вывода пуст.
Можно определить, происходит ли асинхронная операция записи со свойством TransferStatus
.
Синхронные и асинхронные операции записи обсуждены более подробно в Записи и чтении данных.
Бинарная операция записи с помощью fwrite
завершается когда:
Заданные данные записаны.
Прошло время, заданное как свойство Timeout.
Свойство Terminator
не используется с бинарными операциями записи.
Следующая таблица показывает поддерживаемые значения для precision
.
Тип данных | Точность | Интерпретация |
---|---|---|
Символ |
| 8-битный символ без знака |
| 8-битный символ со знаком | |
| 8-битный символ без знака или со знаком | |
Целое число |
| 8-битное целое число |
| 16-битное целое число | |
| 32-битное целое число | |
| 8-битное беззнаковое целое | |
| 16-битное беззнаковое целое | |
| 32-битное беззнаковое целое | |
| 16-битное целое число | |
| 32-битное целое число | |
| 32-или 64-битное целое число | |
| 16-битное беззнаковое целое | |
| 32-битное беззнаковое целое | |
| 32-или 64-битное беззнаковое целое | |
С плавающей точкой |
| 32-битная плавающая точка |
| 32-битная плавающая точка | |
| 32-битная плавающая точка | |
| 64-битная плавающая точка | |
| 64-битная плавающая точка |
BytesToOutput
| OutputBufferSize
| OutputEmptyFcn
| Status
| Timeout
| TransferStatus
| ValuesSent
| fopen
| fprintf