- LiTime Speicher und Akkus         
Ergebnis 1 bis 4 von 4

Thema: Serielle Schnittstelle ansteuern

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    27.08.2007
    Alter
    34
    Beiträge
    324

    Serielle Schnittstelle ansteuern

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Ich lese immer wieder, dass Leute ihre Roboter mit ihren PC's Daten über die Serielle Schnittstelle austauschen lassen. Nur konnte ich bisher nirgenwo eine Anleitung finden, wie ich mit C oder lieber C++ die Serielle Schnittstelle meines WindowsXP Computers ansteuern kann. Kann mir da jemand auf die Sprünge helfen?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.01.2006
    Ort
    Mönchengladbach
    Beiträge
    544
    Win32API --- sollte unter WinXP noch funktionieren

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    27.08.2007
    Alter
    34
    Beiträge
    324
    schade, das machts um eniges komplizierter als ich gehofft hatte.
    trotzdem vielen dank

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    vielleicht hilft das?

    Code:
    //--------------------------------------------------------------------------
    // daten vom psion 3c über RS232 empfangen
    // katze am freitag den 13.7.7
    //--------------------------------------------------------------------------
    #include <stdio.h>
    #include <windows.h>
    #include <conio.h> // nur für getch. kein ansi-standard
    #include "signal.h"
    
    void sigfunc(int sig)
    {
      if(sig == SIGINT)
      {
        printf("Got Ctrl-c.\n");
        // hier muesste noch ein CloseHandle(port) rein
        getch();
        exit(1);
      }
      return;
    }
    
    int main(void)
    {
      HANDLE port;
      DCB dcb;
      unsigned char c;
      unsigned long dwNum;
    
      signal(SIGINT,sigfunc);
    
      port=CreateFile("COM1",
                      GENERIC_READ | GENERIC_WRITE, 
                      0, 
                      NULL, 
                      OPEN_EXISTING, 
                      0, 
                      NULL);       // serielle Schnittstelle oeffnen 
    
      if(!port){printf("failed to open port!\n");getch();exit(1);}
    
      if(!GetCommState(port, &dcb)){CloseHandle(port);printf("failed to get port!\n");getch();exit(1);}
    
      dcb.DCBlength=sizeof(dcb);
      dcb.BaudRate = CBR_38400;    // Datenrate    
      dcb.ByteSize = 8;            // Datenbits 
      dcb.Parity = 0;              // kein Paritätsbit 
      dcb.StopBits =  ONESTOPBIT;  // 1 Stoppbit
      dcb.fBinary = TRUE; 
      dcb.fParity = FALSE;
      dcb.fNull=TRUE; //FALSE;
      dcb.fDtrControl=0;
      dcb.fDsrSensitivity=FALSE;
      dcb.fRtsControl=0;
    
      //dcb.fRtsControl = 0;         // RTS auf -12 Volt 
      //dcb.fDtrControl = 1;         // DTR auf +12 Volt 
    
      if(!SetCommState(port, &dcb)){CloseHandle(port);printf("failed to set port!\n");getch();exit(1);}
    
      printf("listening..\n");
    
      while(1) // hier fuehrt nur ctrl+c wieder raus
      {
        if(ReadFile(port,&c,1,&dwNum,NULL));
        {
          printf("%c",c);
        }
      }
    
      CloseHandle(port);           // serielle Schnittstelle schliessen
      return(0);
    }
    gruesse von der katz

Berechtigungen

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

LiFePO4 Speicher Test