Hallo an die Experten!
Nach etlichen Jahren Pause bin ich wieder in das Thema Mikrocontroller eingestiegen - mit einem Arduino Nano, den ich allerdings mit Bascom programmiere.
Aktuell bin ich dabei ein HC-06 Bluetoothmodul zu konfigurieren. Senden und empfangen von Text klappt soweit, da ich mit einem ";" als String-Ende Zeichen arbeite. Ich lese also mit Inkey über die Software-Uart solange ein mit ";" kommt und schließe dann die Eingabe ab.
Nun möchte ich das Modul aber über die AT-Befehle konfigurieren. Senden klappt, das Modul bestätigt auch:
Ich sende: AT
das Modul antwortet: OK
Je nach Befehl variiert die Länge der Antwort, es folgt auch kein CR oder LF darauf. Schwierig also zu erkennen wann das Ende der Antwort erreicht ist.
Deshalb frage ich nicht auf ein Zeichen ab sondern lasse mir sämtliche Eingangsbytes auf der HW-Uart darstellen - nach 1 Sekunde ist das Terminalfenster total überladen und gefühlt 2 Seiten weitergescrollt.
Ich habe einen Arduino-Code den ich gefunden habe ausprobiert, klappt einwandfrei. Hier erscheint einfach ein "OK" in einer neuen Zeile und fertig.
Gibt es so eine Möglichkeit wie
Serial.Read
in Bascom auch, also einfach alles was reinkommt direkt in eine Variable zu schreiben (oder noch besser, gleich auf die HW-Uart durchzuschleifen)?
Vielen Dank für Infos!
Grüße,
Daniel
Hier der Arduino-Code:
Alles anzeigen
Nach etlichen Jahren Pause bin ich wieder in das Thema Mikrocontroller eingestiegen - mit einem Arduino Nano, den ich allerdings mit Bascom programmiere.
Aktuell bin ich dabei ein HC-06 Bluetoothmodul zu konfigurieren. Senden und empfangen von Text klappt soweit, da ich mit einem ";" als String-Ende Zeichen arbeite. Ich lese also mit Inkey über die Software-Uart solange ein mit ";" kommt und schließe dann die Eingabe ab.
Nun möchte ich das Modul aber über die AT-Befehle konfigurieren. Senden klappt, das Modul bestätigt auch:
Ich sende: AT
das Modul antwortet: OK
Je nach Befehl variiert die Länge der Antwort, es folgt auch kein CR oder LF darauf. Schwierig also zu erkennen wann das Ende der Antwort erreicht ist.
Deshalb frage ich nicht auf ein Zeichen ab sondern lasse mir sämtliche Eingangsbytes auf der HW-Uart darstellen - nach 1 Sekunde ist das Terminalfenster total überladen und gefühlt 2 Seiten weitergescrollt.
Ich habe einen Arduino-Code den ich gefunden habe ausprobiert, klappt einwandfrei. Hier erscheint einfach ein "OK" in einer neuen Zeile und fertig.
Gibt es so eine Möglichkeit wie
Serial.Read
in Bascom auch, also einfach alles was reinkommt direkt in eine Variable zu schreiben (oder noch besser, gleich auf die HW-Uart durchzuschleifen)?
Vielen Dank für Infos!
Grüße,
Daniel
Hier der Arduino-Code:
Quellcode
- #include <SoftwareSerial.h>
- #define rxPin 2
- #define txPin 3
- SoftwareSerial BTserial(rxPin, txPin); // RX | TX
- void setup() {
- Serial.begin(9600);
- Serial.println("Enter AT commands:");
- BTserial.begin(9600);
- }
- void loop() {
- if (BTserial.available()) {
- Serial.write(BTserial.read());
- }
- if (Serial.available()) {
- BTserial.write(Serial.read());
- }
- }