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')
입력 인수
직렬 포트 이름으로, 문자형 벡터 또는 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'
와 함께 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
이면 장치가 첫 번째 메모리 주소에 첫 번째 바이트를 저장합니다. ByteOrder
가 bigEndian
이면 장치가 첫 번째 메모리 주소에 마지막 바이트를 저장합니다.
예를 들어, 장치 메모리에 16진수 값 4F52가 저장된다고 가정해 보겠습니다. 이 값은 2바이트, 즉 4F와 52로 구성되어 있으므로 두 개의 메모리 위치가 사용됩니다. 빅 엔디안 형식을 사용하면 더 낮은 저장 주소에 4F가 저장됩니다. 리틀 엔디안 형식을 사용하면 더 낮은 저장 주소에 52가 저장됩니다.
이 속성을 지정하지 않은 경우 읽기 및 쓰기 연산에 사용되는 디폴트 값은 littleEndian
바이트 순서입니다. 바이트 순서를 bigEndian
으로 변경하려는 경우에만 속성을 지정해야 합니다.
직렬 객체를 만든 후에 다음 구문을 사용하여 ByteOrder
속성을 설정할 수도 있습니다.
s.ByteOrder = 'bigEndian';
참고
읽기 또는 쓰기 연산을 수행하기 전에 ByteOrder
를 장치에 적합한 값으로 구성하십시오. 장치가 바이트를 저장하는 순서는 장치 설명서를 참조하십시오.
예: s = serial('COM1','ByteOrder','bigEndian');
데이터형: char
| string
전송할 데이터 비트의 수로, '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
가 쉼표로 구분되어 지정됩니다.
| 디폴트 값. 패리티 검사 안 함. 패리티 검사가 수행되지 않으며 패리티 비트가 전송되지 않습니다. |
| 홀수 패리티 검사. 데이터에서 마크 비트(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개가 사용됩니다. 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
를 문자의 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 이전에 개발됨serial
은 향후 릴리스에서 제거될 예정입니다. serialport
를 대신 사용하십시오.
다음 예제에서는 권장되는 기능을 사용하여 직렬 포트에 연결하는 방법을 보여줍니다.
기능 | 대체 기능 |
---|---|
s = serial("COM1");
s.BaudRate = 115200;
fopen(s) | s = serialport("COM1",115200); |
권장되는 인터페이스는 추가 기능을 제공하며 성능이 개선되었습니다. 권장되는 기능의 사용 방법에 대한 자세한 내용은 코드를 serialport 인터페이스로 전환하기 항목을 참조하십시오.
serial
함수는 경고 없이 실행되지만 코드 분석기는 serial
이 향후 릴리스에서 제거될 예정임을 나타냅니다.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)