Announcement

Collapse
No announcement yet.

RS232 sendet und empfängt ASCII -> brauche aber BINÄR ->weis jmd Hilfe?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • RS232 sendet und empfängt ASCII -> brauche aber BINÄR ->weis jmd Hilfe?

    Hallo Leute ich will über die RS232 Schnittstelle Daten Senden und Empfangen ->die Daten sollen von einem PIC µC kommen ->dieser µC benötigt die Daten in Binär - Form.
    Jetzt ist mein Problem meine Daten werden in ASCII gesendet und in ASCII empfangen - ich krieg das aber nicht hin das es in Binär gesendet oder empfangen wird - hat jmd ne idee?


    -----------------------------------CODE----------------------------------------------------------
    void __fastcall TForm1::btnSendenClick(TObject *Sender)
    {
    int i,m;
    int anzahl = StrToInt(edtAnzahl->Text);
    int Daten[28];
    Daten[0]=anzahl;

    .
    .
    .

    AnsiString s;

    int x;
    x=(3*anzahl)+1; //Berechnung der Menge der Daten die aus den arrays
    //geholt werden
    for(m=0; m < x; m++)
    {
    s=Daten[m];

    int n=SendData(s.c_str() ,s.Length()); //Sendet jeden Wert einzeln
    Memo1->Lines->Add(s);
    }
    }
    ----------------------------------------------------------------------------------------------------

    void __fastcall TForm1::FormCreate(TObject *Sender)
    {


    }
    void ShowLastError(AnsiString where)
    {
    MessageBox(NULL,SysErrorMessage(GetLastError()).c_ str(),
    where.c_str(),
    MB_OK|MB_ICONERROR);
    }
    HANDLE OpenComm(char* Port)
    {
    HANDLE hCom = CreateFile(Port,
    GENERIC_READ|GENERIC_WRITE,
    0,
    0,
    OPEN_EXISTING,
    0,
    0);
    if (hCom == INVALID_HANDLE_VALUE)
    {
    ShowLastError("CreateFile: "+AnsiString(Port));
    }
    return hCom;

    }
    void SetDCB(HANDLE hCom)
    {
    DCB dcb;
    BOOL fSuccess = GetCommState(hCom, &dcb);
    if (!fSuccess)
    {
    ShowLastError("GetCommState");
    }
    dcb.BaudRate = 2400;
    dcb.ByteSize = 8;
    dcb.Parity = NOPARITY;
    dcb.StopBits = ONESTOPBIT;
    fSuccess = SetCommState(hCom, &dcb) ;
    if (!fSuccess)
    {
    ShowLastError("SetCommState");
    }
    }
    int SendData(char Data[], int n)
    {
    DWORD NumberOfBytesWritten;
    bool b= WriteFile(hComSend,
    Data,
    n,
    &NumberOfBytesWritten, 0);
    if(!b)
    {
    ShowLastError("WriteFile");
    }
    return NumberOfBytesWritten;
    }

    DWORD ReceiveData(char* Data,int n)
    {
    DWORD NumberOfBytesRead;
    bool b=ReadFile(hComReceive,
    Data,
    n,
    &NumberOfBytesRead,
    0);
    if(!b)
    {
    ShowLastError("Readfile");
    }
    return NumberOfBytesRead;
    }
    //---------------------------------------------------------------------------

  • #2
    Danke Leute Problem hat sich erledigt. Auch wenn niemand geantwortet hat haben es sich ja ein paar durchgelesen und wahrsch. auch Gedanken gemacht.

    greetz

    Comment


    • #3
      Auch wenn niemand geantwortet hat haben
      Das könnte dran liegen, dass das falsche Forum gewählt wurde...
      Christian

      Comment

      Working...
      X