보드에서 시리얼통신을 하는데 printf()가 동작을 방해합니다.
글쓴이: dksoul / 작성시간: 일, 2005/10/09 - 12:09오전
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <termios.h> #include <stdio.h> #include <string.h> #define LINESPEED B19200 int main (void) { int fd, res; struct termios oldterm, newterm; char buf='w'; fd= open ("/dev/ttyS2", O_RDWR | O_NOCTTY ); if (fd < 0) { perror ("/dev/ttyS2"); exit (-1); } tcgetattr (fd, &oldterm); bzero (&newterm, sizeof (newterm)); newterm.c_cflag= LINESPEED | CS8 | CLOCAL | CREAD; newterm.c_cflag&=~CRTSCTS; newterm.c_cflag&=~CSTOPB; newterm.c_cflag&=~(PARENB|PARODD); newterm.c_iflag = IGNPAR; newterm.c_oflag = 0; tcflush (fd, TCIFLUSH); tcsetattr (fd, TCSANOW, &newterm); res = write (fd, &buf, sizeof(char)); if(res==1) printf("success.\n"); tcsetattr (fd, TCSANOW, &oldterm); exit (1); }
ARM보드에서 시리얼을 통해 원하는 캐릭터를 넘겨주려고 합니다. 이상하게도 캐릭터를 시리얼에 라이트하기전에 printf()함수를 넣으면 이상한 캐릭터가 전달됩니다. 혹시 왜 그런지 아시는 분 답변주시면 감사하겠습니다. ^^
Forums:
printf 문도 시리얼을 통해 값이 전달 될 것이고, printf문 수
printf 문도 시리얼을 통해 값이 전달 될 것이고, printf문 수행 후에 rs232디바이스의 버퍼(하드웨어) 에 그 값이 남아 있어서 발생한는 문제 같습니다.
댓글 달기