-
        

Ergebnis 1 bis 3 von 3

Thema: Ganz simpel - COM Port ansprechen - Unter Linux

  1. #1

    Ganz simpel - COM Port ansprechen - Unter Linux

    Anzeige

    Moin an alle

    Also ich möchte gerne meinen COM-Port port ansprechen.
    Nur ganz kurz eine Spannung anlegen. Und das ganze dann unter Linux..
    Gibts da vll schon vorgefertigte Programme.. oder hat einer von euch noch nen alten quellcode .. ?
    Danke schonmal im voraus..
    LG
    Philip

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    10.02.2005
    Beiträge
    231
    willst du den com port nicht als serielle benutz
    en sondern nur um zb. taster abzufragen und leds anzusteuern? falls ja kann ich ja mal meinen alten code raussuchen, hab das mal unter linux gemacht.
    thomas

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    30.12.2006
    Beiträge
    10
    Probier mal:
    Code:
    	int SerialPort;
    	struct termios SerialPortOptions;
    	int SerialPortStatus;
    
    	if ( ( SerialPort = open(devFilepath, O_RDWR | O_NOCTTY | O_NDELAY) ) == -1 ){
    		perror("open_port: Unable to open /dev/ttyS0 - ");
    	}
    	
    	fcntl(SerialPort, F_SETFL, 0);
    	
    	tcgetattr( SerialPort, &SerialPortOptions );
    	cfsetispeed( &SerialPortOptions, B19200 );
    	cfsetospeed( &SerialPortOptions, B19200 );			// 19200 bautrate
    	SerialPortOptions.c_cflag &= ~PARENB;				// No parity
    	SerialPortOptions.c_cflag &= ~CSTOPB;				// 1 stopbit
    	SerialPortOptions.c_cflag &= ~CSIZE;				// 8 databits 
    	SerialPortOptions.c_cflag |= CS8;
    	SerialPortOptions.c_cflag &= ~CRTSCTS;				// no hardware flow control
    	SerialPortOptions.c_cflag |= (CLOCAL | CREAD);		// Enable receiver & local mode
    	SerialPortOptions.c_iflag |= (INPCK | ISTRIP);
    	cfmakeraw( &SerialPortOptions );					// RAW data
    	tcsetattr( SerialPort, TCSAFLUSH, &SerialPortOptions );
    	
    	// DTR=1 RTS=0
    	ioctl(SerialPort, TIOCMGET, &SerialPortStatus);
    	SerialPortStatus |= TIOCM_DTR;
    	SerialPortStatus &= ~TIOCM_RTS;	
    	ioctl(SerialPort, TIOCMSET, &SerialPortStatus);
    
    // wirklicher Code mit read und write kommt hier her
    
    	close(SerialPort);
    Wobei devFilepath musst du halt durch dein serielles Port ersetzen (zB /dev/ttyS0)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •