Main Content

serialport

직렬 포트 연결

설명

serialport 객체는 직렬 포트와 통신하기 위한 직렬 클라이언트를 나타냅니다. 객체를 생성한 후 점 표기법을 사용하여 속성을 설정합니다.

생성

설명

s = serialport(port,baudrate)는 전송 속도가 baudrateport에 지정된 직렬 포트에 연결됩니다.

s = serialport(port,baudrate,Name,Value)는 직렬 포트에 연결하고 선택적 이름-값 쌍의 인수를 사용하여 추가 속성을 설정합니다.

s = serialport는 마지막으로 지운 serialport 객체 인스턴스의 속성 설정을 사용하여 인수 없이 직렬 포트에 연결합니다. 유지되는 속성은 Port, BaudRate, ByteOrder, FlowControl, StopBits, DataBits, Parity, Timeout, Terminator입니다. 속성 항목을 참조하십시오.

예제

입력 인수

모두 확장

직렬 포트 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. serialportlist를 사용하여 연결된 포트 목록을 가져옵니다.

예: "COM2"

직렬 통신의 전송 속도로, double형으로 지정됩니다.

예: 9600

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

이름-값 쌍을 사용하여 DataBits, Parity, StopBits, FlowControl, ByteOrder, Timeout 객체 속성을 설정할 수 있습니다. 데이터형 및 허용되는 값은 속성 항목을 참조하십시오.

예: "Timeout",30

속성

모두 확장

객체 생성 속성

읽기 전용 속성입니다.

연결할 직렬 포트로, string형으로 반환됩니다.

예: "COM1"

데이터형: string

초당 비트 수 단위로 지정된 통신 속도로, double형 양의 정수로 반환됩니다.

예: 14400

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

데이터가 손실되었는지 또는 쓰기가 되었는지 확인하기 위한 패리티로, "none", "even" 또는 "odd"로 반환됩니다.

예: "odd"

데이터형: char | string

데이터의 한 문자를 표현하기 위해 사용되는 비트 수로, 8, 7, 6 또는 5로 반환됩니다.

예: 8

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

문자의 끝 또는 전체 전송의 끝을 나타내는 비트 패턴으로, 1, 1.5 또는 2로 반환됩니다.

예: 1

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

데이터 전송 속도 관리 모드로, "none", "hardware" 또는 "software"로 반환됩니다.

예: "software"

데이터형: char | string

여러 바이트를 배열해 더 큰 숫자형 값을 만들 때의 순차적 순서로, "little-endian" 또는 "big-endian"으로 반환됩니다. 객체 생성 시 이름-값 쌍의 인수를 사용하여 이 속성을 설정합니다. 객체 생성 후에 점 표기법을 사용하여 변경할 수도 있습니다.

예: "little-endian"

데이터형: char | string

읽기 및 쓰기 작업을 완료하는 데 허용된 시간(단위: 초)으로, 숫자형 값으로 반환됩니다. 객체 생성 시 이름-값 쌍의 인수를 사용하여 이 속성을 설정합니다. 객체 생성 후에 점 표기법을 사용하여 변경할 수도 있습니다.

예: 60

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

R2024a 이후

연결 식별을 위한 레이블로, string형으로 지정됩니다. Tag를 사용하여 연결에 레이블을 적용하면 나중에 serialportfind에 이 레이블을 사용하여 연결에 액세스할 수 있습니다. 이렇게 하면 한 함수에서 연결을 열고 다른 함수를 사용하여 이 연결에서 작업을 수행할 때 유용할 수 있습니다. 앱 콜백에서 연결을 찾아 액세스하는 데에도 유용합니다.

예: "pSupply"

데이터형: string

읽기 및 쓰기 속성

읽기 전용 속성입니다.

읽을 수 있는 바이트 수로, 숫자형 값으로 반환됩니다.

예: 1024

데이터형: double

읽기 전용 속성입니다.

직렬 포트에 쓰인 바이트 수로, 숫자형 값으로 반환됩니다.

예: 512

데이터형: double

ASCII로 종결된 데이터를 읽고 쓰기 위한 종결자 문자로, "LF", "CR" 또는 "CR/LF"로 반환되거나 닫힌 구간 [0, 255] 사이의 숫자로 반환됩니다. 읽기 종결자와 쓰기 종결자가 다른 경우, Terminator는 해당 값으로 구성된 1×2 셀형 배열로 반환됩니다. configureTerminator 함수를 사용하여 이 속성을 설정합니다.

예: "CR"

데이터형: char | string

콜백 속성

사용 가능한 바이트에 대한 콜백의 트리거 모드로, "off", "byte" 또는 "terminator"로 반환됩니다. 이 설정은 콜백이 꺼져 있는지, BytesAvailableFcnCount로 지정된 바이트 개수에 의해 트리거되는지, Terminator로 지정된 종결자에 의해 트리거되는지를 결정합니다. configureCallback 함수를 사용하여 이 속성을 설정합니다.

예: "off"

데이터형: char | string

BytesAvailableFcn으로 지정된 콜백을 트리거할 데이터 바이트 수로, double형으로 반환됩니다. 이 값은 BytesAvailableFcnMode 속성이 "byte"인 경우에만 사용할 수 있습니다. configureCallback 함수를 사용하여 이러한 속성을 설정합니다.

예: 128

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

bytes-available 이벤트에 의해 트리거되는 콜백 함수로, 함수 핸들로 반환됩니다. bytes-available 이벤트는 특정 개수만큼의 바이트를 수신하거나 종결자를 수신하여 트리거됩니다. 이 속성은 함수 핸들을 할당하기 전까지 비어 있습니다. configureCallback 함수를 사용하여 이 속성을 설정합니다.

예: @myFcn

데이터형: function_handle

오류 이벤트에 의해 트리거되는 콜백 함수로, 함수 핸들로 반환됩니다. 오류 이벤트는 비동기 읽기 또는 쓰기 오류가 발생하면 생성됩니다. 이 속성은 함수 핸들을 할당하기 전까지 비어 있습니다.

예: @myErrFcn

데이터형: function_handle

사용자 데이터에 대한 범용 속성으로, 모든 MATLAB® 데이터형으로 반환됩니다. 예를 들어, 콜백 함수로부터 이벤트가 트리거된 경우 이 속성을 사용하여 데이터를 저장할 수 있습니다.

예: datetime()

객체 함수

read직렬 포트에서 데이터 읽어 들이기
readline직렬 포트에서 ASCII 문자열 데이터 라인 읽기
write직렬 포트에 데이터 쓰기
writeline직렬 포트에 ASCII 데이터 라인 쓰기
serialbreakSend break to device connected to serial port
flush직렬 포트 장치 버퍼 지우기
configureTerminator직렬 포트와의 ASCII 문자열 통신을 위한 종결자 설정
configureCallbackSet callback function and trigger condition for communication with serial port device
getpinstatus직렬 핀 상태 가져오기
setRTS직렬 RTS 핀 설정
setDTR직렬 DTR 핀 설정
delete핸들 객체 삭제
clear작업 공간에서 항목을 제거하여 시스템 메모리 늘리기

예제

모두 축소

COM3 직렬 포트에서 16개의 uint32 데이터 값을 읽습니다.

s = serialport("COM3",9600,"Timeout",5);
data = read(s,16,"uint32");

스크립트 또는 MATLAB 명령줄에서 serialport를 사용하면 MATLAB 작업 공간에서 객체로 표현된 연결이 결과로 반환됩니다.

s1 = serialport("COM3",9600)
s1 = 

  Serialport with properties:

                 Port: "COM3"
             BaudRate: 9600
                  Tag: ""
    NumBytesAvailable: 0

다른 변수에 동일한 연결에 대한 참조가 없는 경우 작업 공간 변수를 지워 직렬 포트의 연결을 끊을 수 있습니다.

clear(s1)

serialportfind를 사용하여 연결이 닫혔는지 확인합니다.

serialportfind
ans =

     []

MATLAB 작업 공간에 존재하거나 클래스 속성 또는 앱 속성으로 저장된 serialport 연결이 있는 경우 다른 함수 또는 앱 콜백에서 serialport 객체에 액세스하지 못할 수 있습니다. 이 경우 serialportfind를 사용하여 연결을 찾아 삭제할 수 있습니다.

S = serialportfind
S = 

  Serialport with properties:

                 Port: "COM3"
             BaudRate: 9600
                  Tag: ""
    NumBytesAvailable: 0

이 연결을 닫으려면 S를 삭제합니다.

delete(S)

이 명령은 serialport 객체를 삭제하고 장치의 연결을 끊습니다. 장치에 다시 연결하려면 serialport를 사용하여 새 인터페이스를 생성해야 합니다.

삭제 후 serialportfind를 호출하여 기존 연결이 없음을 확인합니다.

serialportfind
ans =

     []

변수 S가 여전히 작업 공간에 존재하지만 이제는 유효하지 않은 핸들입니다.

S
S = 

  handle to deleted Serialport

serialport핸들 객체이므로 인터페이스를 삭제한 후에도 변수가 유지됩니다. (이 유형의 객체에 대한 자세한 내용은 핸들 객체 동작 항목을 참조하십시오.) clear를 사용하여 작업 공간에서 유효하지 않은 핸들을 제거할 수 있습니다.

clear S

버전 내역

R2019b에 개발됨

모두 확장

참고 항목

함수