FILE Zeiger auf Gerät umlenken.Wie?



  • Hallo,

    Wie kann ich in C Daten auf die serielle Schnittstelle schicken?
    Man sagt C ist systemnah. Das würde mich gerne interessieren.
    Kann man den FILE Deskriptor irgendwie mit '>' auf Kommandozeile umlenken, oder geht das irgendwie anders?

    Ok habe gerade etwas dazu gelesen. Könnte es so gehen?

    if( (fz = fopen("COM1", "r+")) == NULL)
    	{
    		printf("Serielle Schnittstelle nicht gefunden\n");
    		return 0 ;
    	}else
    	{
    		fprintf(fz, "Hallo\n");
    	}
    


  • > Könnte es so gehen?
    ausprobieren!
    aber geht tatsächlich, für mehr kontrolle über die RS232 benutze bitte die APIs deines betriebssystems.
    🙂



  • Ja er geht wirklich in den else Teil, also kann er COM öffnen.
    Die Frage ist nur wie überprüfen kann, was er da reinschreibt, bzw wie ich das reingeschriebene wieder auslesen kann?
    (Gibts es irgendwie die möglichkeit den COM port zu "hören")

    Da ich betriebssystemunabhängig sein muss, muss ich leider auf die API vom OS verzichten. Beim Windows wäre das irgendwas mit CreateFile...



  • Wenn du sehen willst, was tatsächlich am Com-Port rauskommt, mußt du dort ein Gerät anklemmen, das die Daten in irgendeiner Form ausgeben kann.

    (wobei - ich glaube nicht einmal, daß der Filename "COM1" systemunabhängig deinen COM-Port darstellt)



  • Hallo,

    ja hast recht CStoll. COM1 wäre bei Linux irgendwas mit /dev/ttyS0 oder so.

    Es gibt da ein Tool namens Portmon der den seriellen Port abhört.
    Sowas wie ein Portscanner. Er sagt mir aber, dass ich nur den seriellen Port geöffnet habe, bei fprintf() hat er nichts angezeigt 😞



  • JDHawk schrieb:

    Es gibt da ein Tool namens Portmon der den seriellen Port abhört.
    Sowas wie ein Portscanner. Er sagt mir aber, dass ich nur den seriellen Port geöffnet habe, bei fprintf() hat er nichts angezeigt 😞

    schliess was an. wenn du 2 com ports hast, dann verbinde die mit einander (kabel mit gekreuztem RXD/TXD), dann siehste ob's geht. die FILE* funktionen sollten auch unter linux u.ä. gehen, nur kannste damit nicht die einstellungen der RS232 verändern.
    🙂



  • kauf dir ein oszi;)


Anmelden zum Antworten