UARTを使用したときに、0x0D送信したのに受信側では0x0Aに変わっている時があります。
これは、ttyがターミナルモードになっているためです。
バイナリデータ送信をしたいときは、rawモードの設定が必要です。
以下設定のサンプルです。
fd_sci0 = open(”/dev/ttyAMA0”, O_RDWR | O_NOCTTY| O_NDELAY); // | O_NDELAY|O_NONBLOCK);
if (fd_sci0 == -1)
{
perror(“close error”);
return;
}
struct termios options;
tcgetattr(fd_sci0, &options);
options.c_cflag = B115200 | CS8 | CLOCAL | CREAD;
options.c_iflag = IGNPAR | ICRNL;
options.c_oflag = 0;
options.c_lflag = 0;
cfmakeraw(&options); // <—-ここが重要
tcflush(fd_sci0, TCIFLUSH);
tcsetattr(fd_sci0, TCSANOW, &options);
printf(“ttyAMA0 opened\n”);
good luck,