Problem beim Hex Array

Es kommt was anderes über den seriellen Port heraus wie gewünscht.

Soll ein init string mit 9600Bd gesendet werden

byte message0[] = {0x40,0x40,0x43,0x69,0x01,0x2B,0x0D,0x0A,0x40,0x40,0x43,0x69,0x01,0x2B,0x0D,0x0A};

danach noch 7 Blöcke wo der Hex Code auch nicht stimmt

#define GPSRATE1 9600

mySerial.begin(GPSRATE1);
delay(10);
mySerial.write(message0, 16);
delay(20);

usw.

Das Senden mit 9600 Bd geht, ist aber fehlerhaft

beim ersten Block kommt 0x01,0x0D,0xA5,0x05,0x2B, 0x0d usw raus

Fehlermeldung ist da aber Kompilation funktioniert
Fehler:
sketch_juni_2_motorola.ino:97: warning: deprecated conversion from string constant to 'char*'
sketch_juni_2_motorola.ino:97: warning: deprecated conversion from string constant to 'char*'
sketch_juni_2_motorola.ino:97: warning: deprecated conversion from string constant to 'char*'
sketch_juni_2_motorola.ino:97: warning: deprecated conversion from string constant to 'char*'
sketch_juni_2_motorola.ino:97: warning: deprecated conversion from string constant to 'char*'

Hoffe mir kann jemand helfen und die Info's reichen

vielen Dank für's lesen

Pitti

Hallo,

immer kompletten Sketch bitte.

Kann derzeit nur raten. Du nimmst Software Seriell? Warum nicht die Hardware Serial?
Probier mal .print statt .write.
Wenn es Gründe für software serial gibt, dann probiere auch mal die alte soft serial lib, die soll besser sein.

Willst du einen String oder ein Byte Array? Das sind zwei verschiedene Sachen

write() ist schon richtig für Byte Arrays. print() erwartet einen C String und der müsste dann auch NULL-terminiert sein.

Morgen, ist natürlich ein Byte Array - also 7 Array's. (String geht nicht weil 00 drin vorkommt )

Die 7 Blöcke sind im serial - Logger zu sehen, auch die Anzahl der Bytes stimmt, eben nur die Werte nicht, deswegen meine Frage ob dies mit der Fehlermeldung zusammenhängt, ob der Kompiler da Werte falsch interpretiert.

Werde mal die serial lib probieren, ob sich da was ändert.

#include <SoftwareSerial.h>



byte message0[] = {0x40,0x40,0x43,0x69,0x01,0x2B,0x0D,0x0A,0x40,0x40,0x43,0x69,0x01,0x2B,0x0D,0x0A};


#define GPSRATE1 9600

SoftwareSerial mySerial(3,4);

void setup() 
{
  // put your setup code here, to run once:
mySerial.begin(GPSRATE1);
delay(10);
mySerial.write(message0,  sizeof(message0));
delay(20);


}

void loop() {
  // put your main code here, to run repeatedly:

}

Die Warnungen kommen bei mir nicht.
Auch deutet die Wiederholung an, dass das in einer Schleife passiert.
Ich sehe keine Schleife.

Was steht in Zeile 97?
Ich sehe keine 97 Zeilen.

Der Fehler dürfte also noch im Verborgenen liegen.

Hallo, danke , war ""Betriebsblind"" die Zeilen haben 0 mit meinem Problem zu tun.
Die array,s liegen bei Zeile < 50

Das Abarbeiten der Array's gibt keinen Fehler - kann nur noch in der Übertragung liegen.

Probier mal AltSoftSerial:
https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html

Verbraucht einen Timer und geht nur an bestimmten Pins, aber ist wesentlich zuverlässiger

Hatte grade mal die Hardware-Serielle probiert ( mit Code Schnipseln ) da kommen die array's sauber auf dem Monitor raus.

Muss an der Soft-Seriellen liegen, werde die Altsoft... mal testen

hab mir am UnoR3 Pin 8,9 freigemacht und mit AltSoftSerial gehts wie geschmiert.
Kommt wie bei der HardwareSerial, das raus was rauskommen soll.

Danke für die Hilfe.

Pitti