serial
(제거될 예정임) 직렬 포트 객체 만들기
serial
은 향후 릴리스에서 제거될 예정입니다. serialport
를 대신 사용하십시오. 코드 업데이트에 대한 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.
설명
s = serial(
는 'port'
)'port'
로 지정된 직렬 포트와 연결된 직렬 포트 객체 s
를 만듭니다. 'port'
가 존재하지 않거나 사용 중이면 직렬 포트 객체를 장치에 연결할 수 없습니다.
s = serial(
는 지정된 속성 이름과 속성값을 갖는 직렬 포트 객체를 만듭니다. 잘못된 속성 이름이나 속성값을 지정하면 오류가 반환되고 직렬 포트 객체가 생성되지 않습니다.'port'
,Name,Value
)
예제
직렬 포트 객체 만들기
이 예제에서는 직렬 포트 객체를 만드는 방법을 보여줍니다.
seriallist
함수를 사용하여 사용 가능한 직렬 포트를 찾습니다.
seriallist
직렬 포트 객체 s
를 만들고 이 객체를 직렬 포트 COM1
에 연결합니다. 직렬 포트 객체를 만들려면 포트를 첫 번째 인수로 지정해야 합니다.
s = serial('COM1');
COM3
로 지정된 직렬 포트와 연결된 직렬 포트 객체 s2
를 만듭니다. 객체를 생성할 때 포트 인수 뒤에 선택적으로 이름-값 쌍을 지정하여 통신 속성을 설정할 수 있습니다. 이 예제에서는 전송 속도를 4800으로 설정하고 종결자를 CR로 설정합니다. 이러한 값은 객체 출력값에서 확인할 수 있습니다.
s2 = serial('COM3','BaudRate',4800,'Terminator','CR')
입력 인수
'port'
— 직렬 포트 이름
문자형 벡터 | string형
직렬 포트 이름으로, 문자형 벡터 또는 string형으로 지정됩니다. seriallist
함수는 사용 가능한 직렬 포트 목록을 제공합니다. 직렬 포트 객체를 만들려면 포트를 지정해야 합니다.
포트 이름은 직렬 포트가 있는 플랫폼에 따라 달라집니다. 다음 목록은 다양한 플랫폼에 대한 직렬 생성자의 한 예입니다.
플랫폼 | 직렬 포트 생성자 |
---|---|
Linux® 64 | s = serial('/dev/ttyS0') |
macOS 64 | s = serial('/dev/tty.KeySerial1') |
Windows® 64 | s = serial('COM1') |
예: s = serial('COM1')
데이터형: char
| string
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: s = serial('COM2','BaudRate',1200,'DataBits',7);
serial
과 함께 사용할 수 있는 직렬 포트 객체 속성의 목록을 보려면 serial Properties 항목을 참조하십시오.
참고
포트는 직렬 객체를 만들 때 사용되는 첫 번째 인수여야 합니다. 첫 번째 인수 뒤에는 지원되는 이름-값 쌍을 원하는 수만큼 지정할 수 있습니다.
BaudRate
— 비트가 전송되는 속도
9600 (디폴트 값) | double형
비트가 전송되는 속도로, 'BaudRate'
와 함께 double형이 쉼표로 구분되어 지정됩니다. 전송 속도는 bps 단위로 구성합니다. 전송되는 비트는 시작 비트, 데이터 비트, 패리티 비트(사용된 경우) 및 정지 비트를 포함합니다. 그러나 데이터 비트만 저장됩니다.
전송 속도(baud rate)는 통신 채널에서 정보가 전송되는 속도입니다. 직렬 포트의 경우, 9600보드는 직렬 포트가 최대 9600bps로 전송할 수 있다는 의미입니다. 정보 단위가 1보드(1비트)이면 비트 레이트와 전송 속도가 동일합니다. 1보드를 10비트(예: 데이터 비트 8개 + 프레임 비트 2개)로 지정하면 비트 레이트는 여전히 9600이지만 전송 속도는 9600/10, 즉 960입니다. BaudRate
는 항상 초당 비트 수(bps) 단위로 구성합니다.
참고
데이터를 성공적으로 읽거나 쓰려면 먼저 컴퓨터와 주변 기기를 같은 전송 속도로 구성해야 합니다.
표준 전송 속도는 110bps, 300bps, 600bps, 1200bps, 2400bps, 4800bps, 9600bps, 14400bps, 19200bps, 38400bps, 57600bps, 115200bps, 128000bps, 256000bps 등입니다.
직렬 객체를 만든 후에 다음 구문을 사용하여 BaudRate
속성을 설정할 수도 있습니다.
s.BaudRate = 4800;
예: s = serial('COM1','BaudRate',4800);
데이터형: double
ByteOrder
— 장치의 바이트 순서
littleEndian (디폴트 값) | bigEndian
장치의 바이트 순서로, 'ByteOrder'
와 함께 littleEndian
또는 bigEndian
이 쉼표로 구분되어 지정됩니다. ByteOrder
가 littleEndian
이면 장치가 첫 번째 메모리 주소에 첫 번째 바이트를 저장합니다. ByteOrder
가 bigEndian
이면 장치가 첫 번째 메모리 주소에 마지막 바이트를 저장합니다.
예를 들어, 장치 메모리에 16진수 값 4F52가 저장된다고 가정해 보겠습니다. 이 값은 2바이트, 즉 4F와 52로 구성되어 있으므로 두 개의 메모리 위치가 사용됩니다. 빅 엔디안 형식을 사용하면 더 낮은 저장 주소에 4F가 저장됩니다. 리틀 엔디안 형식을 사용하면 더 낮은 저장 주소에 52가 저장됩니다.
이 속성을 지정하지 않은 경우 읽기 및 쓰기 연산에 사용되는 디폴트 값은 littleEndian
바이트 순서입니다. 바이트 순서를 bigEndian
으로 변경하려는 경우에만 속성을 지정해야 합니다.
직렬 객체를 만든 후에 다음 구문을 사용하여 ByteOrder
속성을 설정할 수도 있습니다.
s.ByteOrder = 'bigEndian';
참고
읽기 또는 쓰기 연산을 수행하기 전에 ByteOrder
를 장치에 적합한 값으로 구성하십시오. 장치가 바이트를 저장하는 순서는 장치 설명서를 참조하십시오.
예: s = serial('COM1','ByteOrder','bigEndian');
데이터형: char
| string
DataBits
— 전송할 데이터 비트 수
8 (디폴트 값) | 5 | 6 | 7
전송할 데이터 비트의 수로, 'DataBits'
와 함께 5
, 6
, 7
또는 8
(디폴트 값)이 쉼표로 구분되어 지정됩니다. 데이터는 5개, 6개, 7개 또는 8개의 비트 단위로 최하위 비트부터 전송됩니다. ASCII 문자를 전송하려면 최소 7개의 데이터 비트가 필요합니다. 이진 데이터를 전송하려면 8개의 비트가 필요합니다. 5비트 및 6비트 데이터 형식은 특화된 통신 장비에서 사용됩니다.
참고
컴퓨터와 주변 기기가 서로 같은 수의 데이터 비트를 전송하도록 구성해야 합니다.
직렬 데이터 형식은 데이터 비트 외에 1개의 시작 비트, 1개 또는 2개의 정지 비트 및 1개의 패리티 비트(사용되는 경우)로 구성됩니다. 정지 비트의 수는 StopBits
속성으로 지정하고 패리티 검사 유형은 Parity
속성으로 지정합니다.
직렬 객체를 만든 후에 다음 구문을 사용하여 DataBits
속성을 설정할 수도 있습니다.
s.DataBits = 7;
예: s = serial('COM1','DataBits',7);
데이터형: double
Parity
— 패리티 검사 유형
none (디폴트 값) | odd | even | mark | space
패리티 검사 유형으로, 'Parity'
와 함께 none
, odd
, even
, mark
또는 space
가 쉼표로 구분되어 지정됩니다.
| 디폴트 값. 패리티 검사 안 함. 패리티 검사가 수행되지 않으며 패리티 비트가 전송되지 않습니다. |
| 홀수 패리티 검사. 데이터에서 마크 비트(1)의 개수를 센 다음 홀수 개의 마크 비트를 얻도록 패리티 비트가 어설션되거나 어설션 해제됩니다. |
| 짝수 패리티 검사. 데이터에서 마크 비트의 수를 센 다음 짝수 개의 마크 비트를 얻도록 패리티 비트가 어설션되거나 어설션 해제됩니다. |
| 마크 패리티 검사. 패리티 비트가 어설션됩니다. |
| 스페이스 패리티 검사. 패리티 비트가 어설션 해제됩니다. |
패리티 검사는 1비트 오류만 감지할 수 있습니다. 2비트 오류가 발생한 경우, 실제로는 틀렸지만 유효해 보이는 패리티가 데이터에 있을 수 있습니다.
직렬 데이터 형식은 패리티 비트 외에 1개의 시작 비트, 5개~8개의 데이터 비트 및 1개 또는 2개의 정지 비트로 구성됩니다. 데이터 비트의 수는 DataBits
속성으로 지정하고 정지 비트의 수는 StopBits
속성으로 지정합니다.
직렬 객체를 만든 후에 다음 구문을 사용하여 Parity
속성을 설정할 수도 있습니다.
s.Parity = 'even';
예: s = serial('COM1','Parity','even');
데이터형: char
| string
StopBits
— 바이트의 끝을 나타내는 데 사용되는 비트 수
1 (디폴트 값) | 1.5 | 2
바이트의 끝을 나타내는 데 사용되는 비트 수로, 'StopBits'
와 함께 1
, 1.5
또는 2
가 쉼표로 구분되어 지정됩니다. StopBits
가 1
이면 데이터 전송의 끝을 나타내는 데 정지 비트 1개가 사용됩니다. StopBits
가 2
이면 데이터 전송의 끝을 나타내는 데 정지 비트 2개가 사용됩니다. StopBits
가 1.5
이면 평상시에 비트 1개를 전송하는 데 걸리는 시간의 150% 동안 정지 비트가 전송됩니다.
참고
컴퓨터와 주변 기기가 서로 같은 수의 정지 비트를 전송하도록 구성해야 합니다.
가능한 값의 요약:
| 디폴트 값. 바이트의 끝을 나타내기 위해 정지 비트 1개가 전송됩니다. |
| 평상시에 비트 1개를 전송하는 데 걸리는 시간의 150% 동안 정지 비트가 전송됩니다. |
| 바이트의 끝을 나타내기 위해 정지 비트 2개가 전송됩니다. |
직렬 데이터 형식은 정지 비트 외에 1개의 시작 비트, 5개~8개의 데이터 비트 및 1개의 패리티 비트(사용되는 경우)로 구성됩니다. 데이터 비트의 수는 DataBits
속성으로 지정하고 패리티 검사 유형은 Parity
속성으로 지정합니다.
직렬 객체를 만든 후에 다음 구문을 사용하여 StopBits
속성을 설정할 수도 있습니다.
s.StopBits = 2;
예: s = serial('COM1','StopBits',2);
데이터형: double
Terminator
— 종결자 문자
string형
종결자 문자로, 'Terminator'
와 함께 string형이 쉼표로 구분되어 지정됩니다. Terminator
를 문자의 ASCII 코드를 나타내는 0 ~ 127 범위의 정수값으로 구성하거나 Terminator
를 ASCII 문자로 구성할 수 있습니다. 예를 들어, Terminator
를 캐리지 리턴으로 구성하려면 값을 CR
또는 13
으로 지정하십시오. Terminator
를 라인 피드로 구성하려면 값을 LF
또는 10
으로 지정하십시오. Terminator
를 CR/LF
또는 LF/CR
로 설정할 수도 있습니다. Terminator
가 CR/LF
이면 종결자에서 캐리지 리턴 다음에 라인 피드가 옵니다. Terminator가 LF/CR
이면 종결자에서 라인 피드 다음에 캐리지 리턴이 옵니다. 이 두 값에 상응하는 정수는 없습니다.
또한 Terminator
를 1×2 셀형 배열로 설정할 수 있습니다. 셀의 첫 번째 요소는 읽기 종결자이고 셀형 배열의 두 번째 요소는 쓰기 종결자입니다.
fprintf
함수를 사용하여 쓰기 작업을 수행하면 모든 \n
이 Terminator
속성값으로 바뀝니다. %s\n
은 fprintf
의 디폴트 형식입니다. Terminator
값을 읽으면 fgetl
, fgets
또는 fscanf
를 사용한 읽기 작업이 완료됩니다. 종결자는 이진 모드의 작업에서 무시됩니다.
BytesAvailableFcnMode
가 terminator
로 설정되어 있으면 종결자를 사용하여 bytes-available 이벤트를 생성할 수도 있습니다.
직렬 객체를 만든 후에 다음 구문을 사용하여 Terminator
속성을 설정할 수도 있습니다.
s.Terminator = 'CR';
예: s = serial('COM1','Terminator','CR');
데이터형: char
| string
팁
serial
과 함께 사용할 수 있는 직렬 포트 객체 속성의 목록을 보려면 serial Properties 항목을 참조하십시오.
장치와 통신하기 전에 먼저
함수를 통해 fopen
obj
에 장치가 연결되어 있어야 합니다. 연결된 직렬 포트 객체는 Status
속성값으로 open
을 갖습니다. 객체가 장치에 연결되어 있지 않은 상태에서 읽기 또는 쓰기 작업을 시도하면 오류가 반환됩니다. 하나의 직렬 포트에는 하나의 직렬 포트 객체만 연결할 수 있습니다.
버전 내역
R2006a 이전에 개발됨R2022a: 경고
serial
은 향후 릴리스에서 제거될 예정입니다. serialport
를 대신 사용하십시오.
다음 예제에서는 권장되는 기능을 사용하여 직렬 포트에 연결하는 방법을 보여줍니다.
기능 | 대체 기능 |
---|---|
s = serial("COM1");
s.BaudRate = 115200;
fopen(s) | s = serialport("COM1",115200); |
권장되는 인터페이스는 추가 기능을 제공하며 성능이 개선되었습니다. 권장되는 기능의 사용 방법에 대한 자세한 내용은 코드를 serialport 인터페이스로 전환하기 항목을 참조하십시오.
R2021b: 제거될 예정임
serial
함수는 경고 없이 실행되지만 코드 분석기는 serial
이 향후 릴리스에서 제거될 예정임을 나타냅니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)