UART lesen mit MSP430

Gast #1259686
Lesenswert?
• ▲
▼
Hallo,

ich möchte vom PC 35 Bytes auf den Controller übertragen. Diese sollen 
dort empfangen und gespeichert werden, um damit weiterarbeiten zu 
können.
Derzeit lese ich sie in einer Schleife ein:

for(uint8 i = 1;i<35;i++)
    {
        rx_buffer[i] = UCA0RXBUF;
    }

In rx_buffer stehen die Werte nun aber nicht nur einmal drin, sondern 
mehrmals nacheinander. z.B.

rx_buffer[1]=0x01;
rx_buffer[2]=0x01;
rx_buffer[3]=0x01;
rx_buffer[4]=0x4F;
...

Kann mir jemand sagen worand das liegen könnte?

Grüße
Gast #1259697
Lesenswert?
• ▲
▼
Du musst vor dem Auslesen des Buffers warten, bis überhaupt ein neues 
Byte vom PC reingeschrieben wurde. Auf der anderen Seite musst Du das 
Byte auch rechtzeitig genug auslesen, bevor ein neues angekommen ist, 
sonst wurde das alte überschrieben!
So was macht man sinnvollerweise nicht in einer Schleife, sondern per 
Interrupt. Schau Dir mal die Beispiele von TI zu Deinem MSP an und lerne 
;-)
Persönliche Seite #1259756
Lesenswert?
• ▲
▼
Du musst das Bit UCRXIFG im Register UCA0IFG auswerten, erst wenn es 
gesetzt ist, stehen in UCA0RXBUF neue Daten zum Lesen an.
1
for(uint8 i = 1;i<35;i++)
2
    {
3
        while (!(UCA0IFG & UCRXIFG));
4

5
        rx_buffer[i] = UCA0RXBUF;
6
    }

Der Hinweis von Stefan auf interruptgesteuerten Empfang allerdings ist 
sehr sinnvoll, auch solltest Du Dir Gedanken um so Dinge wie 
Protokolle machen.

Im übrigen sieht Deine for-Schleife verdächtig aus; warum fängst Du bei 
1 an?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.