- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 7 von 7

Thema: btm222 reagiert nicht auf befehle

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    23.08.2005
    Ort
    rlp
    Alter
    35
    Beiträge
    68

    btm222 reagiert nicht auf befehle

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hey,

    ich hab ein problem mit dem bluetoothmodul btm222: also angeschlossen hab ich soweit alles richtig denk ich. mein pc findet es und ich kann auch über den comport daten austauschen.
    das problem ist aber, dass alles nur in der standartconfig geht. wenn ich die bluetoothverbindung trenne, um befehle ans modul zu schicken, bekomme ich von diesem entweder das gleiche zurückgeschickt oder nur den ersten buchstaben.
    beispielsweise kommt bei AT auch AT zurück
    bei ATD? kommt nur A ,..... usw.

    Wär schön, wenn mir einer helfen könnte....

    Gruß Daniel

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    39
    Beiträge
    246
    Hi, das problem hatte ich auch zuerst!
    Die einzelnen Zeichen dürfen nicht so schnell hintereinander ankommen.
    Das BTM-222 scheint hier etwas langsam zu sein, bzw. einen zu kleinen Puffer zu besitzen.

    Ich habe mir daher die folgende Funktion geschrieben:

    Code:
    void blue_Cmd(const char * string){
        register char c;
    
        while ((c = *string)) {
            uart_Put(c);
            string++;
            wait_100ms();
        }
        
        uart_Put('\r');
        wait_100ms();
    }
    Wie du die wait_100ms() implementierst, oder ob du _delay_ms(100) benutzt bleibt natürlich dir überlassen

    Mfg,
    Thomas

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    23.08.2005
    Ort
    rlp
    Alter
    35
    Beiträge
    68
    Hi, also ich habs grad mal mit verzögerung ausprobiert...
    das problem besteht weiterhin, allerdings werden die strings jetzt immer komplett zurückgeschickt, also nichts mehr verkürzt.

    Könnte es sein, dass vielleicht noch irgendwas vor dem Befehl gesendet werden muss? Hab im Datenblatt aber nichts gefunden...

    Mfg Daniel

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    39
    Beiträge
    246
    Du musst ein '\r' nach dem Befehl senden (Kein '\n'...)

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    23.08.2005
    Ort
    rlp
    Alter
    35
    Beiträge
    68
    danke für deine antworten...

    sry, wenn ich mich ein bisschen blöd anstelle, aber irgendwie geht es noch nicht so ganz
    also mal als beispiel ein befehl... ATD?. so ich muss also ATD?\r senden, richtig? und 100ms zeitabstand zwischen den buchstaben. (ich programmier eigentlich nicht in c deshalh war ich mir nicht sicher, dass ich alles richtig verstanden habe...)

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    39
    Beiträge
    246
    Genau, wobei natürlich \r für ein carriage-return steht. In C kann man halt einfach \r schreiben, weiß nicht, wie es bei dir ist.

    Die 100ms sind übrigens durch probieren entstanden

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    23.08.2005
    Ort
    rlp
    Alter
    35
    Beiträge
    68
    es funktioniert!
    genau daran lag es. ich hab \r als ascii gesendet. weil ich am pc meistens in delphi programmiere kannte ich \r bei c nicht. bei delphi heißt es einfach #13.

    vielen dank nochmal!!! \/

Berechtigungen

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

12V Akku bauen