【オリジナル】mini 2440下com 1テスト

1946 ワード

プレート上の位置はcon 2
linux/devでttySAC 1
シリアルアシスタントは、シリアルデバッグアシスタントV 2である.2
ps:max 232+DB 9母=アダプタプレート,usb 2シリアルポート
現象:
シリアルアシスタントが送信したデータはmini 2440によって数え切れないほど送信された.
 
#include
#include
#include
#include
#include
// # include
#include
#include
#include

static void Error(const char *Msg)
{
    fprintf (stderr, "%s
", Msg);     fprintf (stderr, "strerror() is %s
", strerror(errno));     exit(1); } static void Warning(const char *Msg) {      fprintf (stderr, "Warning: %s
", Msg); } static inline void WaitFdWriteable(int Fd) {     fd_set WriteSetFD;     FD_ZERO(&WriteSetFD);     FD_SET(Fd, &WriteSetFD);     if (select(Fd + 1, NULL, &WriteSetFD, NULL, NULL) < 0) {  Error(strerror(errno));     } } //int main(int argc, char **argv) int main(void) {     int CommFd;     struct termios TtyAttr; //    struct termios BackupTtyAttr;     int DeviceSpeed = B9600;     int ByteBits = CS8;     const char *DeviceName = "/dev/ttySAC1";     CommFd = open(DeviceName, O_RDWR, 0);     if (CommFd < 0) Error("Unable to open device");     if (fcntl(CommFd, F_SETFL, O_NONBLOCK) < 0)       Error("Unable set to NONBLOCK mode");     memset(&TtyAttr, 0, sizeof(struct termios));     TtyAttr.c_iflag = IGNPAR;     TtyAttr.c_cflag = DeviceSpeed | HUPCL | ByteBits | CREAD | CLOCAL;     TtyAttr.c_cc[VMIN] = 1;     if (tcsetattr(CommFd, TCSANOW, &TtyAttr) < 0)         Warning("Unable to set comm port");     for (;;) { unsigned char Char = 0; fd_set ReadSetFD; write(CommFd, &Char, 1); FD_ZERO(&ReadSetFD); FD_SET(CommFd, &ReadSetFD); if (select(CommFd + 1, &ReadSetFD, NULL, NULL, NULL) < 0) {    Error(strerror(errno)); } while (read(CommFd, &Char, 1) == 1) { WaitFdWriteable(CommFd); if (write(CommFd, &Char, 1) < 0) { Error(strerror(errno)); } }     }     return 0; }