Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Запись в ком порт


Автор: agealex 29.10.2007, 17:07
 я открываю файл 
Код

int  serial_open( char* FileName , int Speed)
{
    int fd;
    fd = open(FileName, O_RDWR | O_NOCTTY | O_NDELAY);
    if (fd == -1)
    {
        return -1;
    }
    
    termios options = {0};
    options.c_cflag = CSTOPB * 0 | B9600 | CRTSCTS| CS8 | CLOCAL | CREAD;
    tcflush(fd, TCIFLUSH);
    if ( tcsetattr(fd, TCSANOW, &options) != 0)
    {
        close(fd);
        return -1;
    }
    return fd;

}
...
// и пишу 
int  serial_write(int fd, void *buf, int nbytes)
{
    int dwBytesSent;
    dwBytesSent = write(fd, buf, nbytes);
    if (dwBytesSent < 0)
    {
        return -1;
    }
    
    return dwBytesSent;
}





Данный пишутся в файл но не отправляются может что не так сделал? Чтение проходит на ура

Автор: cardinal 29.10.2007, 17:23
Код

options.c_cflag = CSTOPB * 0 | B9600 | CRTSCTS| CS8 | CLOCAL | CREAD;

Предположение: может потому, что есть еще и флаг CWRITE?

Автор: agealex 29.10.2007, 17:27
Нет такого флага нет.

Автор: cardinal 29.10.2007, 17:39
Тогда смотри пример здесь
http://www.captain.at/howto-simple-serial-port-test-example.php

Автор: agealex 29.10.2007, 17:45
Что то ничего нового не увидел, все что там описано у меня уже есть

Автор: agealex 29.10.2007, 18:17
Все нашел почему причина была во флаге CRTSCTS

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)