LINUX.ORG.RU

Serial Ports


0

1

Читалка

    int fd = open("/dev/ttyS1", O_RDWR | O_NOCTTY | O_NDELAY);
    termios PortSettings;
    tcgetattr(fd,&PortSettings);

    PortSettings.c_cflag |= (CLOCAL | CREAD);          // Активируем приемник, разрешая чтение
    PortSettings.c_lflag |= ~(ICANON | ECHO | ECHOE | ISIG);
    PortSettings.c_oflag |= ~OPOST;
    PortSettings.c_iflag |= ~(IXON | IXOFF | IXANY);

    cfsetispeed(&PortSettings, B19200);
    cfsetospeed(&PortSettings, B19200);

    tcsetattr(fd,TCSANOW,&PortSettings);

    ssize_t TeakedByteCounter;
    size_t SendingByteCounter = 1;
    void *buff = NULL;

    fcntl(fd, F_SETFL, 0); // blocking on
    TeakedByteCounter = ::read(fd,buff,SendingByteCounter);

    ::close(fd);
Передатчик:
    int fd = open("/dev/ttyS2", O_RDWR | O_NOCTTY | O_NDELAY);

    termios PortSettings;
    tcgetattr(fd,&PortSettings);
    PortSettings.c_cflag |= (CLOCAL | CREAD);
    PortSettings.c_lflag |= ~(ICANON | ECHO | ECHOE | ISIG);
    PortSettings.c_oflag |= ~OPOST;
    PortSettings.c_iflag |= ~(IXON | IXOFF | IXANY);

    cfsetispeed(&PortSettings, B19200);
    cfsetospeed(&PortSettings, B19200);

    tcsetattr(fd,TCSANOW,&PortSettings);

    ssize_t SendedByteCounter;
    SendedByteCounter = write(fd,"a",1);
    ::close(fd);

Собстевнно:

read(fd,buff,SendingByteCounter) == -1
Только начал работать с портами...

Ответ на: комментарий от metawishmaster

crw-rw---- 1 root dialout 4, 64 Nov 26 2012 /dev/ttyS0 crw-rw---- 1 root dialout 4, 65 Nov 26 12:22 /dev/ttyS1 crw-rw---- 1 root dialout 4, 66 Nov 26 12:21 /dev/ttyS2 crw-rw---- 1 root dialout 4, 67 Nov 26 2012 /dev/ttyS3

Я есть в dialout.

LinuxDebian ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.