Перейдите свой код к serialport Интерфейс

serial функция, ее объектные функции и ее свойства не рекомендуются. Используйте serialport вместо этого.

Узнайте устройства последовательного порта

seriallist не рекомендуется. Используйте serialportlist вместо этого.

Свяжите с устройством последовательного порта

В этом примере показано, как связать с устройством последовательного порта с помощью рекомендуемой функциональности.

ФункциональностьИспользуйте это вместо этого
s = serial("COM1");
s.BaudRate = 115200;
fopen(s)
s = serialport("COM1",115200);

Для получения дополнительной информации смотрите serialport.

Читайте и запишите

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

ФункциональностьИспользуйте это вместо этого
% s is a serial object
fwrite(s,1:5,"uint32")
data = fread(s,5,"uint32")
data =

     1
     2
     3
     4
     5
% s is a serialport object
write(s,1:5,"uint32")
data = read(s,5,"uint32")
data =

     1     2     3     4     5
% s is a serial object
command = "start";
fwrite(s,command,"char")
% s is a serialport object
command = "start";
write(s,command,"char")
% s is a serialport object
command = "start";
write(s,command,"string")
% s is a serial object
length = 5;
resp = fread(s,length,"char")
resp =

   115
   116
    97
   114
   116
resp = char(resp)'
resp =

    'start'
% s is a serialport object
length = 5;
resp = read(s,length,"string")
resp =

    "start"

Для получения дополнительной информации смотрите write или read.

Отправьте команду

В этом примере показано, как записать отключенную команду SCPI с помощью рекомендуемой функциональности.

ФункциональностьИспользуйте это вместо этого
% s is a serial object
s.Terminator = "CR/LF"
channel = 1;
level = 3.44;
fprintf(s,"TRIGGER%d:LEVEL2 %1.2f",[channel,level]);
% s is a serialport object
configureTerminator(s,"CR/LF")
channel = 1;
level = 3.44;
cmd = sprintf("TRIGGER%d:LEVEL2 %1.2f",[channel,level]);
writeline(s,cmd)

writeline автоматически добавляет терминатор строки записи.

Для получения дополнительной информации смотрите configureTerminator или writeline.

Считайте отключенную строку

В этом примере показано, как выполнить отключенное чтение строки с помощью рекомендуемой функциональности.

ФункциональностьИспользуйте это вместо этого
% s is a serial object
fprintf(s,"MEASUREMENT:IMMED:TYPE PK2PK")
a = fscanf(s,"%e",6)
a =

    2.0200

Для спецификатора формата "%e"fscanf возвращает терминатор строки, и пользователь должен удалить его из строки.

% s is a serialport object
writeline(s,"MEASUREMENT:IMMED:TYPE PK2PK")
a = readline(s)
a = 

    "2.0200"
sscanf(a,"%e")
a =

    2.0200
% s is a serial object
fprintf(s,"*IDN?")
a = fgetl(s)
a =

    'TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16'

fgetl чтения, пока заданный терминатор строки не достигнут и затем отбрасывает терминатор строки.

% s is a serialport object
writeline(s,"*IDN?")
a = readline(s)
a = 

    "TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04"

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

% s is a serial object
fprintf(s,"*IDN?")
a = fgets(s)
a =

    'TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04
     '

fgets чтения, пока заданный терминатор строки не достигнут и затем возвращает терминатор строки.

Для получения дополнительной информации смотрите readline.

Сбросьте данные из памяти

В этом примере показано, как сбросить данные из буфера с помощью рекомендуемой функциональности.

ФункциональностьИспользуйте это вместо этого
% s is a serial object
flushinput(s)
% s is a serialport object
flush(s,"input")
% s is a serial object
flushoutput(s)
% s is a serialport object
flush(s,"output")
% s is a serial object
flushinput(s)
flushoutput(s)
% s is a serialport object
flush(s)

Для получения дополнительной информации смотрите flush.

Установите Терминатора

В этом примере показано, как установить терминатор строки с помощью рекомендуемой функциональности.

ФункциональностьИспользуйте это вместо этого
% s is a serial object
s.Terminator = "CR/LF";
% s is a serialport object
configureTerminator(s,"CR/LF")
% s is a serial object
s.Terminator = {"CR/LF" [10]};
% s is a serialport object
configureTerminator(s,"CR/LF",10)

Для получения дополнительной информации смотрите configureTerminator.

Настройте функцию обратного вызова

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

ФункциональностьИспользуйте это вместо этого
s = serial("COM5","BaudRate",115200)
s.BytesAvailableFcnCount = 5
s.BytesAvailableFcnMode = "byte"
s.BytesAvailableFcn = @instrcallback

fopen(s)

function instrcallback(src,evt)
   data = fread(src,src.BytesAvailable)
   disp(evt)
   disp(evt.Data)
end
data =

     1
     2
     3
     4
     5

    Type: 'BytesAvailable'
    Data: [1×1 struct]

    AbsTime: [2019 5 2 16 35 9.6710]
s = serialport("COM5",115200)
configureCallback(s,"byte",5,@instrcallback);

function instrcallback(src,evt)
   data = read(src,src.NumBytesAvailable,"uint8")
   disp(evt)
end
data =

     1     2     3     4     5

  DataAvailableInfo with properties:

    BytesAvailableFcnCount: 5
                   AbsTime: 02-May-2019 15:54:09

Для получения дополнительной информации смотрите configureCallback.

Считайте последовательное состояние контакта

В этом примере показано, как считать последовательное состояние контакта с помощью рекомендуемой функциональности.

ФункциональностьИспользуйте это вместо этого
% s is a serial object
s.PinStatus
ans = 

  struct with fields:

    CarrierDetect: 'on'
      ClearToSend: 'on'
     DataSetReady: 'on'
    RingIndicator: 'on'
% s is a serialport object
status = getpinstatus(s)
status = 

  struct with fields:

      ClearToSend: 1
     DataSetReady: 1
    CarrierDetect: 1
    RingIndicator: 1

Для получения дополнительной информации смотрите getpinstatus.

Установите последовательный DTR и состояния контакта RTS

В этом примере показано, как установить последовательный DTR, и RTS прикрепляют состояния с помощью рекомендуемой функциональности.

ФункциональностьИспользуйте это вместо этого
% s is a serial object
s.DataTerminalReady = "on";
% s is a serialport object
setDTR(s,true)
% s is a serial object
s.RequestToSend = "off";
% s is a serialport object
setRTS(s,false)

Для получения дополнительной информации смотрите setDTR или setRTS.

Смотрите также

|