C tcsendbreak() 시리얼 통신 break 신호 전송 함수
시리얼 통신에서 브레이크(break) 신호를 보내려면 tcsendbreak() 함수를 사용하면 됩니다. 상대 쪽에서 break 신호를 주었을 때 수신 버퍼에 0x00이 있어서 0x00을 보내면 break 신호가 전송되는 줄 아는 분이 계시더군요. 이미지나 동영상처럼 바이너리 파일을 전송할 경우 0x00이 있을 수 있는데, 그때마다 break 신호가 발생해서는 안 되겠지요.
- 헤더 : termios.h
- 형태: int tcsendbreak(int fd, int duration)
- 인수: int fd 시리얼 포트와 연결된 파일 디스크립트
int duration 전송 시간 - 반환: 0 == 성공, -1 == 실패 및 errno에 에러코드 대입
int duration 전송 시간은 0일 경우 0.25초에서 0.5초 이내로 0 값의 비트를 전송합니다. 0이 아닌 경우는 정의된 시간만큼 전송한다고 하는데, 자세한 내용은 찾지 못했습니다.
C tcsendbreak() 예제
#include <termios.h> fd = open( dev_name, O_RDWR ¦ O_NOCTTY ); : tcsendbreak( fd, 0);
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
모드버스 통신 오류 시 응답 방법 (1) | 2022.10.14 |
---|---|
C언어 포인터 사용하는 이유 (1) | 2022.03.28 |
C언어 함수 내 배열은 어디에 생성될까? (0) | 2019.11.19 |