Stringende bei UART Übertragung wird nicht erkannt [stm32f4]]

OP #3616134
Lesenswert?

Hallo liebe User,
Ich habe eine Serielle Schnitstelle zwischen PC/Matlab und dem STM32F4 
Discovery Board hergestellt.
Jetzt möchte ich Daten von Matlab an den Controller senden, was soweit 
auch einwandfrei funktioniert.
Um Float Zahlen zu übertragen, habe ich diese zuvor in Matlab in einen 
String gewandelt.
Mein Problem besteht nun darin, dass ich im µc kein Stringende erkennen 
kann.
Hier der Code im Controller, sowie der Matlab-Code und der Arr-Inhalt 
nach einem "Sendebefehl" in Matlab als .png

Das Array sollte eigentlich mit jeden 'Sendebefehl überschrieben werden.
Momenan allerdings werden die beiden Strings einfach hintereinander in 
das arr geschrieben.
Ich hoffe jemand kann mir da ein wenig weiter helfen.
Vielen Dank im Voraus
Grüße Phil

1
  extern "C" void USART3_IRQHandler()
2
  {  
3
    static uint8_t count=0;                  
4
    char reciever;
5
 
6
      reciever=USART3->DR;
7
      if(reciever != '\n')
8
      {
9
      usartarr[count]=reciever;
10
      count++;
11
      }
12
      else
13
      {
14
      count=0;
15
      }
16

17
  }
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #3616140
Lesenswert?

Philipp Bauer schrieb:
> Mein Problem besteht nun darin, dass ich im µc kein Stringende erkennen
> kann.
Sendet dein Matlab am Stringende ein New Line?

> reciever
Es spricht sich zwar so, schreibt sich aber anders...

> matlabcode.png
Ist Matlab ein grafisches Programmiertool? Oder warum macht man 
Screenshots von 6 Zeilen Quelltext?


Peter II schrieb:
> Es wird ein \0 am ende gesendet.
Das möchte ich sehen! Ich behaupte: da wird einfach nur der 
nullterminierte String ohne die Null am Ende gesendet.
#3616145
Lesenswert?

Peter II schrieb:
> Philipp Bauer schrieb:
>> if(reciever != '\n')
>
> du wartest auf ein ENTER - es wird aber keines gesendet. Es wird ein \0
> am ende gesendet.


Wobei mich beim geposteten Matlab Code auch das wundern würde.
Oder wird vom Matlab wahlweise
* nach einem fwrite autoatsch ein \0 eingeschoben?
* die Stringlänge inklusive \0 angegeben?

(kenn die Matlab-Details da nicht)


Wie kommt man eigentlich auf die Idee, Code als PNG zu posten. Da kann 
man sich so wunderbar auf diesen Code beziehen! (Sarkasmus off)
OP #3616180
Lesenswert?

> Ja weil matlab nichts einfügt. Also am ende deine ausgabe in matlab den
> string terminieren in dem du ein '\n' ausgibst.

Vielen Dank Jonas, ich werde das gleich probieren.





>Wie kommt man eigentlich auf die Idee, Code als PNG zu posten. Da kann
>man sich so wunderbar auf diesen Code beziehen!

Ich wollte die beiden verschiedenen Programme der Übersicht wegen 
trennen, wusste aber nicht das dies so eine Lawine lostritt.

Grüße Phil
#3616193
Lesenswert?

Philipp Bauer schrieb:

> Ich wollte die beiden verschiedenen Programme der Übersicht wegen
> trennen, wusste aber nicht das dies so eine Lawine lostritt.

Für die Zukunft:

In einer Antwort zu einem Programmproblem möchte ein Antworter meistens 
einen Codeausschnitt in die Antwort einbauen, auf den er sich bezieht.
Wenn er den Code in Textform hat, dann geht das ganz einfach: Code 
markieren - Strg-C - an die bewusste Stelle in der Antwort springen - 
Strg-V - und der Codeausschnitt steht in der Antwort.
Postest du deinen Code (oder sonst irgendeine Text-Sache) als PNG (also 
als Bild), dann muss ich als Antworter alles neu tippen. Das kann man in 
Ausnahmefällen als Helfer schon mal machen, aber wenn du nett bist, dann 
machst du es mir leicht, dir zu helfen und schmeisst mir keine Prügel in 
Form von Mehrarbeit zwischen die Beine.
OP #3616295
Lesenswert?

>Ja weil matlab nichts einfügt. Also am ende deine ausgabe in matlab den
>string terminieren in dem du ein '\n' ausgibst.

Danke für den Tipp Jonas, hat wunderbar funktioniert.


>In einer Antwort zu einem Programmproblem möchte ein Antworter meistens
>einen Codeausschnitt in die Antwort einbauen, auf den er sich bezieht.
>Wenn er den Code in Textform hat, dann geht das ganz einfach: Code
>markieren - Strg-C - an die bewusste Stelle in der Antwort springen -
>Strg-V - und der Codeausschnitt steht in der Antwort.
>Postest du deinen Code (oder sonst irgendeine Text-Sache) als PNG (also
>als Bild), dann muss ich als Antworter alles neu tippen. Das kann man in
>Ausnahmefällen als Helfer schon mal machen, aber wenn du nett bist, dann
>machst du es mir leicht, dir zu helfen und schmeisst mir keine Prügel in
>Form von Mehrarbeit zwischen die Beine.

Jup, das verstehe ich natürlich
Werde mich in Zunkunft daran halten
Grüße Phil

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren