Начало работы с коммуникацией последовательного порта

Запросите устройство последовательного порта

Этот пример иллюстрирует некоторые основные команды последовательного порта.

Примечание

Этот пример показывают на платформе Windows®.

Если вам соединили устройство с последовательным портом, COM1 и сконфигурированный для скорости в бодах 4 800, выполняют следующий пример.

s = serialport("COM1",4800);
writeline(s,"*IDN?")
out = readline(s);
clear s

*IDN? команда запрашивает устройство для идентификационной информации, которая возвращена в out. Если ваше устройство не поддерживает эту команду, или если это соединяется с различным последовательным портом, измените предыдущий пример соответственно.

Примечание

*IDN? одна из команд, поддержанных Стандартными Командами для Программируемых Инструментов (SCPI) язык, который используется многими современными устройствами. Обратитесь к своей документации устройства, чтобы видеть, поддерживает ли она язык SCPI.

Сеанс последовательного порта

Этот пример описывает шаги, которые вы используете, чтобы выполнить любую задачу последовательного порта с начала до конца.

session последовательного порта включает все шаги, которые вы, вероятно, сделаете при передаче с устройством, соединенным к последовательному порту. Эти шаги:

  1. Найдите свои последовательные порты — Отображение список последовательных портов в вашей системе с помощью serialportlist функция.

  2. Свяжите с устройством последовательного порта — Подключение к устройству для определенного последовательного порта с помощью serialport функция создания.

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

  3. Сконфигурируйте свойства — Чтобы установить желаемое поведение объекта последовательного порта, значения присвоения к свойствам с помощью записи через точку.

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

  4. Запишите и считайте данные — Записывают данные к устройству с помощью writeline или write функция и считанные данные из устройства с помощью readline или read функция.

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

  5. Разъединитесь и вымойтесь — Когда вы больше не будете нуждаться в объекте последовательного порта, будете удалять его из рабочей области MATLAB® с помощью clear команда.

Сеанс последовательного порта укреплен во многих примерах документации последовательного порта. Чтобы видеть основной пример, который использует шаги, показанные выше, смотрите Запрос Устройство Последовательного порта.

Configuring and Returning Properties

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

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

Отображение имен свойства и значений свойств

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

s = serial('COM1');
set(s)
    ByteOrder: [ {littleEndian} | bigEndian ] 
    BytesAvailableFcn
    BytesAvailableFcnCount
    BytesAvailableFcnMode: [ {terminator} | byte ]
    ErrorFcn
    InputBufferSize
    Name
    OutputBufferSize
    OutputEmptyFcn
    RecordDetail: [ {compact} | verbose ]
    RecordMode: [ {overwrite} | append | index ]
    RecordName
    Tag
    Timeout
    TimerFcn
    TimerPeriod
    UserData

    SERIAL specific properties:
    BaudRate
    BreakInterruptFcn
    DataBits
    DataTerminalReady: [ {on} | off ]
    FlowControl: [ {none} | hardware | software ]
    Parity: [ {none} | odd | even | mark | space ]
    PinStatusFcn
    Port
    ReadAsyncMode: [ {continuous} | manual ]
    RequestToSend: [ {on} | off ]
    StopBits
    Terminator

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

get(s)
    ByteOrder = littleEndian
    BytesAvailable = 0
    BytesAvailableFcn = 
    BytesAvailableFcnCount = 48
    BytesAvailableFcnMode = terminator
    BytesToOutput = 0
    ErrorFcn = 
    InputBufferSize = 512
    Name = Serial-COM1
    OutputBufferSize = 512
    OutputEmptyFcn = 
    RecordDetail = compact
    RecordMode = overwrite
    RecordName = record.txt
    RecordStatus = off
    Status = closed
    Tag = 
    Timeout = 10
    TimerFcn = 
    TimerPeriod = 1
    TransferStatus = idle
    Type = serial
    UserData = []
    ValuesReceived = 0
    ValuesSent = 0

    SERIAL specific properties:
    BaudRate = 9600
    BreakInterruptFcn = 
    DataBits = 8
    DataTerminalReady = on
    FlowControl = none
    Parity = none
    PinStatus = [1x1 struct]
    PinStatusFcn = 
    Port = COM1
    ReadAsyncMode = continuous
    RequestToSend = on
    StopBits = 1
    Terminator = LF

Чтобы отобразить текущее значение для одного свойства, предоставьте имя свойства к get.

get(s,'OutputBufferSize')
ans =
   512

Чтобы отобразить текущие значения для нескольких свойств, включайте имена свойства как элементы массива ячеек.

get(s,{'Parity','TransferStatus'})
ans = 
    'none'    'idle'

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

s.Parity
ans =
none

Конфигурирование значений свойств

Можно сконфигурировать значения свойств с помощью set функция:

set(s,'BaudRate',4800);

или запись через точку:

s.BaudRate = 4800;

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

set(s,'DataBits',7,'Name','Test1-serial')

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

На практике можно сконфигурировать многие свойства в любое время, в то время как объект последовательного порта существует — включая во время создания объекта. Однако некоторые свойства не конфигурируемы, в то время как объект соединяется с устройством или при записи информации к диску. Для получения информации о том, когда свойство конфигурируемо, см. Описание свойства.

Определение имен свойства

Имена свойства последовательного порта представлены с помощью смешанного случая. В то время как это делает имена свойства легче читать, используйте любой случай, который вы хотите при определении имен свойства. Например, чтобы сконфигурировать BaudRate свойство:

s.BaudRate = 4800;
s.baudrate = 4800;

Значения свойств по умолчанию

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

Примечание

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

Если свойство имеет конечное множество значений строки, значение по умолчанию заключено {}. Например, значение по умолчанию для Parity свойством является none.

set(s,'Parity')
[ {none} | odd | even | mark | space ]

Можно найти значение по умолчанию для любого свойства на страницах с описанием свойства.