2013-02-18 3 views
0

물론 termios.h이 있습니다. 그러나 여기서 나는 AT 명령에 대해 말하고 있습니다. 나는 그들이 에 처형 시키길 원합니다.C - Linux를 통해 직렬 포트로 AT 명령을 보내는 방법

C을 통해 직렬 포트로 AT 명령을 보내어 어떻게 실행합니까??

+0

이 명령을 텍스트로 보내면됩니다. – lqs

+0

장치는 * nix에있는 파일입니다. 직렬 포트를 파일로 열어 읽기/쓰기를 시도해보십시오. –

+0

[C와 시리얼 포트 읽기 및 쓰기] 가능한 복제본 (http://stackoverflow.com/questions/3452359/serial-port-reading-and-writing-with-c) –

답변

3

이 간단한 예를 봐 (그것은 작동) :

struct termios options; 
int fd; 

fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY); 

if (fd < 0) 
{ 
    printf("Error opening serial port\n"); 
    exit(1); 
} 

bzero(&options, sizeof(options)); 
options.c_cflag = B9600 | CS8 | CLOCAL | CREAD | IGNPAR; 
tcflush(fd, TCIFLUSH); 
tcsetattr(fd, TCSANOW, &options); 

if (write(fd, "ATZ\r", 4) < 4) 
{ 
    printf("Write error - %s \n", strerror(errno)); 
    exit (1); 
} 

// read back for OK or KO then do your stuff... 
+0

감사합니다, 나는 포트 구분하는 방법을 궁금 해서요 명령과 텍스트 사이. –

+1

모뎀과 통신하는 것은 Hayes 방법입니다. 이 명령은 형식에 따라 앞에 붙은 AT 명령을 구별합니다. Serial_Programming에 대한 아래 답변의 링크를 확인하십시오. –

+0

@DaneBalia 후속 조치를 보내 주셔서 감사합니다. –

관련 문제