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

Создайте объект последовательного порта

Синтаксис

s = serial('port')
s = serial('port', Name,Value)

Описание

пример

s = serial('port') создает объект последовательного порта s, сопоставленный с последовательным портом, заданным 'port'. Если 'port' не существует, или если он используется, вы не можете соединить объект последовательного порта с устройством.

пример

s = serial('port', Name,Value) создает объект последовательного порта с заданными именами свойства и значениями свойств. Если недопустимое имя свойства или значение свойства заданы, ошибка возвращена, и объект последовательного порта не создается.

Примеры

свернуть все

Этот пример показывает, как создать объект последовательного порта.

Найдите доступные последовательные порты.

Используйте функцию seriallist, чтобы найти ваши доступные последовательные порты.

seriallist
ans = 

  1×2 string array

    "COM1"    "COM3"

Создайте объект последовательного порта и присвойте порт.

Этот пример создает объект последовательного порта s и сопоставляет его с последовательным портом COM1. Необходимо задать порт в качестве первого аргумента, чтобы создать объект последовательного порта.

s = serial('COM1');

Создайте объект последовательного порта и задайте свойства.

Этот пример создает объект последовательного порта s2, сопоставленный с последовательным портом COM3, и устанавливает свойства. Можно опционально установить коммуникационные свойства путем определения пар "имя-значение" во время создания объекта после аргумента port. Этот пример устанавливает скорость в бодах на 4 800 и терминатор строки к CR. Вы видите эти значения в объектном выводе.

s2 = serial('COM3','BaudRate',4800,'Terminator','CR')
   Serial Port Object : Serial-COM3

   Communication Settings 
      Port:               COM3
      BaudRate:           4800
      Terminator:         'CR'

   Communication State 
      Status:             closed
      RecordStatus:       off

   Read/Write State  
      TransferStatus:     idle
      BytesAvailable:     0
      ValuesReceived:     0
      ValuesSent:         0
 

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

свернуть все

Имя последовательного порта, заданное как вектор символов или строка. Функция seriallist предоставляет список доступных последовательных портов. Необходимо задать порт, чтобы создать объект последовательного порта.

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

ПлатформаКонструктор последовательного порта
Linux® 64s = serial('/dev/ttyS0')
macOS 64s = serial('/dev/tty.KeySerial1')
Windows® 64s = serial('COM1')

Пример: s = serial('COM1')

Типы данных: char | string

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: s = serial('COM2','BaudRate',1200,'DataBits',7);

Для списка свойств объекта последовательного порта, которые можно использовать с serial, обратитесь к Описанию свойства.

Примечание

Порт должен быть первым аргументом, используемым, чтобы создать последовательный объект. Можно затем следовать за портом с любым количеством поддерживаемых пар "имя-значение".

Уровень, на котором передаются биты, задал как пара, разделенная запятой, состоящая из 'BaudRate' и двойного. Вы конфигурируете скорость в бодах как биты в секунду. Переданные биты включают старт-бит, биты данных, бит четности (если используется), и стоп-биты. Однако только биты данных хранятся.

Скорость в бодах является уровнем, на котором информация передается в канале связи. В контексте последовательного порта 9 600 бодов означают, что последовательный порт способен к передаче максимума 9 600 бит в секунду. Если информационный модуль составляет один бод (один бит), битрейт и скорость в бодах идентичны. Если один бод дан как 10 битов, (например, восемь битов данных плюс два предельных бита), битрейт все еще 9600, но скорость в бодах является 9600/10, или 960. Вы всегда конфигурируете BaudRate как биты в секунду.

Примечание

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

Стандартные скорости в бодах включают 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000, и 256 000 бит в секунду.

Можно также установить свойство BaudRate после создания последовательного объекта с помощью этого синтаксиса:

s.BaudRate = 4800;

Пример: s = serial('COM1','BaudRate',4800);

Типы данных: double

Порядок байтов устройства, заданного как пара, разделенная запятой, состоящая из 'ByteOrder' и littleEndian или bigEndian. Если ByteOrder является littleEndian, устройство хранит первый байт в первом адресе памяти. Если ByteOrder является bigEndian, устройство хранит последний байт в первом адресе памяти.

Например, предположите, что шестнадцатеричное значение 4F52 должно храниться в памяти устройства. Поскольку это значение состоит из двух байтов, 4F и 52, две ячейки памяти используются. Используя формат с обратным порядком байтов, 4F хранится сначала в более низком адресе ЗУ. Используя формат с прямым порядком байтов, 52 хранится сначала в более низком адресе ЗУ.

Порядок байтов littleEndian является значением по умолчанию и используется в операциях чтения и операциях записи, если вы не задаете свойство. Необходимо задать свойство только, чтобы изменить порядок байтов на bigEndian.

Можно также установить свойство ByteOrder после создания последовательного объекта с помощью этого синтаксиса:

s.ByteOrder = 'bigEndian';

Примечание

Сконфигурируйте ByteOrder к соответствующему значению для вашего устройства прежде, чем выполнить операцию чтения или операцию записи. Обратитесь к своей документации устройства для получения информации о порядке, в котором это хранит байты.

Пример: s = serial('COM1','ByteOrder','bigEndian');

Типы данных: char | string

Количество битов данных, чтобы передать, заданный как пара, разделенная запятой, состоящая из 'DataBits' и 5, 6, 7 или 8, который является значением по умолчанию. Данные передаются как серия пять, шесть, семь, или восемь битов с младшим значащим битом, отправленным сначала. По крайней мере семь битов данных требуются, чтобы передавать символы ASCII. Восемь битов требуются, чтобы передавать двоичные данные. Пятибитные и шестибитные форматы данных используются для специализированного оборудования связи.

Примечание

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

В дополнение к битам данных формат последовательных данных состоит из старт-бита, одного или двух стоп-битов, и возможно бита четности. Вы задаете количество стоп-битов со свойством StopBits и тип проверки четности со свойством Parity.

Можно также установить свойство DataBits после создания последовательного объекта с помощью этого синтаксиса:

s.DataBits = 7;

Пример: s = serial('COM1','DataBits',7);

Типы данных: double

Тип проверки четности, заданной как пара, разделенная запятой, состоящая из 'Parity' и none, odd, even, mark или space.

{none}

Значение по умолчанию. Никакая проверка четности. Проверка четности не выполняется, и бит четности не передается.

odd

Проверка отрицательной четности. Количество битов метки (1 с) в данных считается, и бит четности утверждается или не утверждается получить нечетное число битов метки.

even

Проверка четности. Количество битов метки в данных считается, и бит четности утверждается или не утверждается получить четное число битов метки.

mark

Отметьте проверку четности. Бит четности утверждается.

space

Проверка четности пробела. Бит четности не утверждается.

Проверка четности может обнаружить ошибки одного бита только. Ошибка в силе на два бита заставляет данные иметь на вид допустимую четность, когда на самом деле это неправильно.

В дополнение к биту четности формат последовательных данных состоит из старт-бита, от пяти до восьми битов данных, и одного или двух стоп-битов. Вы задаете количество битов данных со свойством DataBits и количество стоп-битов со свойством StopBits.

Можно также установить свойство Parity после создания последовательного объекта с помощью этого синтаксиса:

s.Parity = 'even';

Пример: s = serial('COM1','Parity','even');

Типы данных: char | string

Количество битов раньше указывало на конец байта, заданного как пара, разделенная запятой, состоящая из 'StopBits' и 1, 1.5 или 2. Если StopBits является 1, один стоп-бит используется, чтобы указать на конец передачи данных. Если StopBits является 2, два стоп-бита используются, чтобы указать на конец передачи данных. Если StopBits является 1.5, стоп-бит передается в течение 150% нормального времени, используемого, чтобы передать один бит.

Примечание

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

Сводные данные возможных значений:

{1}

Значение по умолчанию. Один стоп-бит передается, чтобы указать на конец байта.

1.5

Стоп-бит передается в течение 150% нормального времени, используемого, чтобы передать один бит.

2

Два стоп-бита передаются, чтобы указать на конец байта.

В дополнение к стоп-битам формат последовательных данных состоит из старт-бита, от пяти до восьми битов данных, и возможно бита четности. Вы задаете количество битов данных со свойством DataBits и тип проверки четности со свойством Parity.

Можно также установить свойство StopBits после создания последовательного объекта с помощью этого синтаксиса:

s.StopBits = 2;

Пример: s = serial('COM1','StopBits',2);

Типы данных: double

Символ Терминатора, заданный как пара, разделенная запятой, состоящая из 'Terminator' и строки. Можно сконфигурировать Terminator к целочисленному значению в пределах от от 0 до 127, который представляет код ASCII для символа, или можно сконфигурировать Terminator к символу ASCII. Например, чтобы сконфигурировать Terminator к возврату каретки, задайте значение, чтобы быть CR или 13. Чтобы сконфигурировать Terminator к переводу строки, задайте значение, чтобы быть LF или 10. Можно также установить Terminator на CR/LF или LF/CR. Если Terminator является CR/LF, терминатор строки является возвратом каретки, сопровождаемым переводом строки. Если Терминатором является LF/CR, терминатор строки является переводом строки, сопровождаемым возвратом каретки. Обратите внимание на то, что нет никаких целочисленных эквивалентов для этих двух значений.

Кроме того, можно установить Terminator на 1 2 массив ячеек. Первый элемент ячейки является терминатором строки чтения, и второй элемент массива ячеек является терминатором строки записи.

При выполнении операции записи с помощью функции fprintf все случаи \n заменяются значением свойства Terminator. Обратите внимание на то, что %s\n является форматом по умолчанию для fprintf. Операция чтения с fgetl, fgets или fscanf завершается, когда значение Terminator читается. Терминатор строки проигнорирован для бинарных операций.

Можно также использовать терминатор строки, чтобы сгенерировать доступное байтам событие, когда BytesAvailableFcnMode установлен в terminator.

Можно также установить свойство Terminator после создания последовательного объекта, с помощью этого синтаксиса:

s.Terminator = 'CR';

Пример: s = serial('COM1','Terminator','CR');

Типы данных: char | string

Советы

Обратитесь к Описанию свойства для списка свойств объекта последовательного порта, которые можно использовать с serial.

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

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