Этот пример иллюстрирует некоторые основные команды последовательного порта.
Этот пример показывают на платформе Windows®.
Если вам соединили устройство с последовательным портом, COM1 и сконфигурированный для скорости в бодах 4 800, выполняют следующий пример.
s = serial('COM1'); set(s,'BaudRate',4800); fopen(s); fprintf(s,'*IDN?') out = fscanf(s); fclose(s) delete(s) clear s
Команда *IDN?
запрашивает устройство для идентификационной информации, которая возвращена в out
. Если ваше устройство не поддерживает эту команду, или если это соединяется с различным последовательным портом, измените предыдущий пример соответственно.
*IDN?
является одной из команд, поддержанных Стандартными Командами для Программируемых Инструментов (SCPI) язык, который используется многими современными устройствами. Обратитесь к своей документации устройства, чтобы видеть, поддерживает ли она язык SCPI.
Этот пример описывает шаги, которые вы используете, чтобы выполнить любую задачу последовательного порта с начала до конца.
session последовательного порта включает все шаги, которые вы, вероятно, сделаете при передаче с устройством, соединенным к последовательному порту. Эти шаги:
Найдите свои последовательные порты — Отображение список последовательных портов в вашей системе с помощью функции seriallist
.
Создайте объект последовательного порта — Создают объект последовательного порта для определенного последовательного порта с помощью функции создания serial
.
Сконфигурируйте свойства во время создания объекта при необходимости. В частности, вы можете хотеть сконфигурировать свойства, сопоставленные с коммуникациями последовательного порта, такими как скорость в бодах, количество битов данных, и так далее.
Соединитесь с устройством — Подключение объект последовательного порта к устройству с помощью функции fopen
.
После того, как объект соединяется, измените необходимые настройки устройства путем конфигурирования значений свойств, считайте данные и запишите данные.
Сконфигурируйте свойства — Чтобы установить желаемое поведение объекта последовательного порта, значения присвоения к свойствам с помощью функции set
или записи через точку.
На практике можно сконфигурировать многие свойства в любое время включая во время, или сразу после, создание объекта. С другой стороны, в зависимости от ваших настроек устройства и требований вашего приложения последовательного порта, вы можете смочь принять значения свойств по умолчанию и пропустить этот шаг.
Запишите и считайте данные — Записывают данные к устройству с помощью fprintf
или функции fwrite
, и считывают данные из устройства с помощью fgetl
, fgets
, fread
, fscanf
или функции readasync
.
Объект последовательного порта ведет себя согласно ранее сконфигурированным или значениям свойств по умолчанию.
Разъединитесь и вымойтесь — Когда вы больше не будете нуждаться в объекте последовательного порта, будете отключать его от устройства с помощью функции fclose
, удалять его из памяти с помощью функции delete
и удалять его из рабочей области MATLAB® с помощью команды clear
.
Сеанс последовательного порта укреплен во многих примерах документации последовательного порта. Чтобы видеть основной пример, который использует шаги, показанные выше, смотрите Пример: Начало работы.
Этот пример описывает, как вы отображаете имена свойства последовательного порта и значения свойств, и как вы присваиваете значения свойствам.
Вы устанавливаете желаемое поведение объекта последовательного порта путем конфигурирования значений свойств. Можно отобразить или сконфигурировать значения свойств с помощью функции 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 ]
Можно найти значение по умолчанию для любого свойства на страницах с описанием свойства.