Com1/2 Seriell ansteuern



  • Hi Leute!
    Also ich habe eine klasse gefunden, die den Comport erfolgreich öffnet, allerdings klappt das ansteuern nicht wirklich. Fakt ist, das sie wie inna FAQ,
    WriteFile(this->m_hPort, puffer, len, &written, NULL);
    verwendet. Allerdings wird beim durchmessen bei der bitfolge 1010101... nichts wirklich verändert. DTR verändert sich zu GND und das ist alles.
    Also: wie kann ich einen pin direkt ansteuern?



  • Mit WriteFile wird die Bitfolge "...1010101...", also 0xAA oder 0x55 in "puffer", an TxD ausgegeben, nicht an DTR. DTR kann man mit EscapeCommFunction(this->m_hPort, SETDTR) oder CLRDTR setzen und rücksetzen. GND-Potential dürfte DTR nie annehmen (verbotener Zustand), sondern immer (ca.) -10V beim Setzen und +10V beim "clear"en.

    Blackbird



  • also ich hab sämmtliche leitungen durchgemessen währen das programm lief, aber nur an RTS hat er was angezeigt (sry, oben hab ich mich vertan). RTS is von LOW auf HIGH gewechselrt und weiter nix...
    Kann ich die Pins denn irgendwie sonnst ansprechen? _outp und _inp gehen nich (BSP außer FAQ(MFC) lässt sich nicht kompilieren), was die MSDN auch bestätigt (nur unter DOS verwendbar).

    Need Help! Unter Pascal sieht das so einfach aus....



  • Nur als Beispiel:

    #include <windows.h>
    
    int main (void)
    {
        HANDLE hPort; 
    
        hPort =  CreateFile (TEXT("COM1"), 
            GENERIC_READ | GENERIC_WRITE,
            0,
            0,
            OPEN_EXISTING,
            0,
            0);
    
        EscapeCommFunction (hPort, SETRTS); // RTS setzten
        Sleep (2000);
        EscapeCommFunction (hPort, CLRRTS); // RTS rücksetzten
        Sleep (2000);
        EscapeCommFunction (hPort, SETRTS); // RTS setzten
        Sleep (2000);
    
        CloseHandle (hPort);
    
        return (0);
    }
    

    Blackbird


Anmelden zum Antworten