직렬 포트를 통해 LPC 1786 마이크로 컨트롤러에 명령을 보내려면 어떻게해야합니까? 이 작업을 수행하기 위해이 코드를 사용하여 직렬 포트를 엽니 다.LPC1786과의 직렬 통신
struct termios tio;
int tty_fd;
memset(&tio,0,sizeof(tio));
tio.c_iflag = 0;
tio.c_oflag = 0;
tio.c_cflag = CS8|CREAD|CLOCAL; // 8n1, see termios.h for more information
tio.c_lflag = 0;
tio.c_cc[VMIN] = 1;
tio.c_cc[VTIME] = 5;
tty_fd = open(device, O_RDWR | O_NONBLOCK);
cfsetospeed(&tio, B9600); // 115200 baud
cfsetispeed(&tio, B9600); // 115200 baud
tcflush(tty_fd, TCIFLUSH);
이것은 (iMX53)을 사용하는 임베디드 리눅스 시스템 용입니다. 내 PC에서 코드를 컴파일하고 실행할 때. 나는 이것을 얻는다 :
sent: ?
recieve: Sinchronized<CR><LF>
sent: Sinchronized<CR><LF>
recieve: Synchronized<CR>OK<CR><LF>
sent: 16000<CR><LF>
recieve: 16000<CR>OK<CR><LF>
마녀는 좋다. 내가 그것을 컴파일하고 그것을 시스템에 업로드 할 때 나는 이것을 얻는다.
Sent: ?
HEX: 0x53 0x79 0x6E 0x63 0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65 0x64 0xA 0xA 0x53 0x79 0x6E 0x63 0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65 0xA
ASCII: SynchronizedSynchronizedOKOKnchronized1K024K024chronized1
Sent: ?
HEX: 0xA 0xA 0xA 0xA 0xA 0xA 0xA 0x30 0xA 0xA 0x31 0xA 0xA 0xA 0xA 0xA 0xA 0x34 0xA 0xA 0x31 0xA 0xA 0xA 0xA 0xA 0xA 0xA 0xA 0xA 0A
ASCII: 014141hronized1111111ronized1
마녀 종류의 폐허. 쓰기와 읽기를 위해서 나는 write 함수 &을 쓰고있다. 나는 이것이 내가 직렬 포트를 여는 방식과 관련이 있다고 생각한다. 그러나 무엇이 잘못 되었습니까. 나는 다른 설정을 시도했지만 거의 성공하지 못했습니다. 응답으로 나는 "????? 1 ???"을 얻는다. 그리고 대부분의 시간은 읽을 것이 없습니다. (내 자신의 &의 육성쪽으로 기울어 개발 시스템의 일부를 추가)
이 두 :
어떤 보오율로 뛰고 있습니까? 이러한 종류의 문제는 항상 보오율 불일치의 냄새가납니다. 코드에서 9600, 주석에서 115200을 볼 수 있으며 호스트 측에서 무엇이 있는지 전혀 알 수 없습니다. P – slugonamission
다른 속도를 테스트하고있었습니다. 호스트 -> 속도 9600 보드, stty :/dev/ttymxc4 intr =^C; 종료 =^\; 지우기 = ^?; 죽이기 =^U; eof =^D; eol =; eol2 = ; 시작 =^Q; 정지 =^S; susp =^Z; rprnt =^R; werase =^W; lnext =^V; flush =^O; min = 1; 시간 = 0; -parenb -parodd CS8 hupcl -cstopb cread CLOCAL -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr ICRNL IXON -ixoff -iuclc -ixany -imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isext ico echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke –
DimDqkov
그건 이상한 것입니다. 프로세서의 입력 클럭이 맞습니까? – slugonamission