Serielleschnittstelle - Pins auf low legen



  • ich habe mir mit WinApiein programm für die rs232 schnittstelle programmiert.
    es funktioniert alles super, nur wenn ich das programm starte sind die Pins (CTS, DSR, DCD) leider auf high. sie MÜSSEN aber bei mir auf low sein.
    das ganze habe ich mit createfile, dcb, etc.. realisiert.

    weiss jemand wie oder bei welcher funktion man die pins auf low schalten kann?

    schonmal danke für jegliche hilfe

    BigNeal



  • EscapeCommFunction mit Parameter SETDTR/CLRDTR bzw. SETRTS/CLRRTS.



  • cd9000 schrieb:

    EscapeCommFunction mit Parameter SETDTR/CLRDTR bzw. SETRTS/CLRRTS.

    danke für deine antwort, aber ich habe mir diesen beitrag http://www.c-plusplus.net/forum/viewtopic.php?t=84830&postdays=0&postorder=asc&highlight=schnittstelle+pin&start=0
    auch schon zu gemüte geführt. aber mit der funktion kann man ja leider genau meine Pins nicht schalten.. 😞

    msdn schrieb:

    CLRDTR Clears the DTR (data-terminal-ready) signal.
    CLRRTS Clears the RTS (request-to-send) signal.
    SETDTR Sends the DTR (data-terminal-ready) signal.
    SETRTS Sends the RTS (request-to-send) signal.
    SETXOFF Causes transmission to act as if an XOFF character has been received.
    SETXON Causes transmission to act as if an XON character has been received.
    SETBREAK Suspends character transmission and places the transmission line in a break state until the ClearCommBreak function is called (or EscapeCommFunction is called with the CLRBREAK extended function code). The SETBREAK extended function code is identical to the SetCommBreak function. Note that this extended function does not flush data that has not been transmitted.
    CLRBREAK Restores character transmission and places the transmission line in a nonbreak state. The CLRBREAK extended function code is identical to the ClearCommBreak function.

    hat sonst noch jemand eine idee?



  • hat keiner eine idee oder eine ahnung wo ungefähr man das machen könnte? 😞



  • ... nur wenn ich das programm starte sind die Pins (CTS, DSR, DCD) leider auf high. sie MÜSSEN aber bei mir auf low sein ...

    😕

    Das sind Eingänge. Warum sollen die sich wie ein Ausgang setzen lassen? Und wozu?
    Wenn die "low" sein sollen (ich nehme mal an, Du meinst Massepegel?), dann schalte einfach einen Widerstand zwischen GND (Pin 5 bei 9pol. Stiftleiste) auf die Eingänge. Und schon sind sie "low".

    Blackbird



  • hat sich erledigt 😃
    nach langem suchen und probieren habe ich die einstellungen gefunden
    ich habe jetzt einfach

    dcb.fRtsControl=1;
       dcb.fDtrControl=1;
    

    bei der initialisierung gemacht. jetzt sind wie Blackbird richtig bemerkt hat meine Eingänge alle auf low..

    trotzdem thx
    BigNeal



  • Ich hab's immer noch nicht verstanden.

    RTS und DTR sind AUSGÄNGE, die kann man mit EscapeCommFunction setzen (auf logisch 1, das sind -10V oder logisch 0, das sind +10V) während des Programmablaufes. Oder auch gleich bei der Initialisierung über den Device Control Block (DCB), wie Du es gemacht hast.

    EINGÄNGE (CTS, DSR, DCD) kann man NICHT setzten.

    Kann es sein, dass Deine Frage sich auf die falschen Pins bezog?

    Blackbird


Anmelden zum Antworten