Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
serielle-Schnittstelle

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Otti
Gast





BeitragVerfasst am: 16. Mai 2003 12:28   Titel: serielle-Schnittstelle

Moin Moin

Habe ein (hoffentlich) kleines Problem.
Und zwar will ich über die serielle-Schnittstelle ein Zeichen versenden.
Empfangen geht schon wunderbar nur mit dem senden komme ich nicht weiter.
Hier mein Quelltextauszug . . .

=======================================================================


#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <termios.h>
#include <math.h>
#include <string.h>


#define BAUDRATE B9600 //Baudrate (9600 Bps)
#define _POSIX_SOURCE 1

int main (int argc, char *argv[]){

int fd;
struct termios newtio;
char buffer[255];
char pingpong;
int buffersize;

fd=open(device, O_RDWR|O_NOCTTY); //com1 oeffnen


if (fd < 0)
{
perror(device);
return 2;
}

bzero(& newtio, sizeof(newtio));
newtio.c_cflag=BAUDRATE|CS8|CLOCAL|CREAD;


newtio.c_iflag = IGNPAR | ICRNL;
newtio.c_oflag |= OPOST; //output-flag | hier liegt evtl. der fehler ???
newtio.c_lflag = ICANON;
newtio.c_cc[VINTR] = 0;
newtio.c_cc[VQUIT] = 0;
newtio.c_cc[VERASE] = 0;
newtio.c_cc[VKILL] = 0;
newtio.c_cc[VEOF] = 4;
newtio.c_cc[VTIME] = 0;
newtio.c_cc[VMIN] = 1;
newtio.c_cc[VSWTC] = 0;
newtio.c_cc[VSTART] = 0;
newtio.c_cc[VSTOP] = 0;
newtio.c_cc[VSUSP] = 0;
newtio.c_cc[VEOL] = 0;
newtio.c_cc[VREPRINT] = 0;
newtio.c_cc[VDISCARD] = 0;
newtio.c_cc[VWERASE] = 0;
newtio.c_cc[VLNEXT] = 0;
newtio.c_cc[VEOL2] = 0;

tcflush(fd, TCIFLUSH);
tcsetattr(fd,TCSANOW,&newtio);



//SENDEN------(funzt nicht)---------------------------------------------------------

pingpong = 50; //Der char pingpong soll gesendet werden (50)
buffersize = write(fd, pingpong, 1);


//Empfangen (funzt) ------------------------------------------------------

while (true) //forever is a long time... *g*
{

buffersize = read(fd,buffer,255);
buffer[buffersize]=0;
printf("%s",buffer);

}

}

==================================================================

evtl. hat ja jemand von euch einen Tipp für mich.

MFG
Otti
 

otti
Gast





BeitragVerfasst am: 18. Mai 2003 9:32   Titel: Re: serielle-Schnittstelle

OK
hat sich schon erledigt.
Der fehler war auf der anderen seite des Kabels *g*
MFG
Otti
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy