Forum: Mikrocontroller und Digitale Elektronik Zeichenkette empfangen


von Christian B. (christb)


Lesenswert?

Hallo,

ich möchte gerne eine Zeichenkette empfangen. Dafür hab ich diesen Code 
entwickelt. Leider kommt nix zurück. Was ist denn falsch an meinem Code?
Baudrate und alle anderen Konfigurationen sind in Ordnung!
1
char muAntwString[5];
2
int i;
3
4
void main(void)
5
{
6
    
7
  WDTCTL = WDTPW + WDTHOLD;             
8
  P4SEL = BIT4+BIT5;                         
9
 
10
  UCA1CTL1 |= UCSWRST;                     
11
  UCA1CTL1 |= UCSSEL_2;                   
12
  UCA1CTL0 |= UCPEN+UCPAR+UC7BIT+UCSPB;
13
    
14
  UCA1BR0 = 0x36;                          
15
  UCA1BR1 = 0x00;                        
16
  UCA1MCTL = UCBRS_5+UCBRF_0;              
17
  UCA1CTL1 &= ~UCSWRST;                    
18
  UCA1IE |= UCRXIE + UCTXIE;               
19
  UCA1IFG &= ~UCTXIFG+UCRXIFG;            
20
21
22
    while((UCA1IFG&UCRXIFG)==0);  
23
    muAntwString[0]=UCA1RXBUF; 
24
    while((UCA1IFG&UCRXIFG)==0);
25
    muAntwString[1]=UCA1RXBUF; 
26
    while((UCA1IFG&UCRXIFG)==0); 
27
    muAntwString[2]=UCA1RXBUF; 
28
    while((UCA1IFG&UCRXIFG)==0); 
29
    muAntwString[3]=UCA1RXBUF; 
30
    while((UCA1IFG&UCRXIFG)==0); 
31
    muAntwString[4]=UCA1RXBUF; 
32
    }

von Markus O. (pipimaxi)


Lesenswert?

dein Programm wird einmal durchlaufen, dann nie wieder

von Peter II (Gast)


Lesenswert?

bits werde nicht addiert

> WDTCTL = WDTPW + WDTHOLD;

dazu gibt es das binäre Oder.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Christian B. schrieb:
> ich möchte gerne eine Zeichenkette empfangen.
Kannst du schon 1 einzelnes Zeichen empfangen?

von Karl H. (kbuchegg)


Lesenswert?

Christian B. schrieb:
> Hallo,
>
> ich möchte gerne eine Zeichenkette empfangen. Dafür hab ich diesen Code
> entwickelt. Leider kommt nix zurück.

Ich kann ehrlich gesagt aber auch nicht sehen, warum da irgendetwas 
zurückkommen sollte. Bis jetzt empfängt dein Code nur (so er das 
überhaupt tut).

von Christian B. (christb)


Lesenswert?

Ich kann nichts empfangen, da das Programm nicht in die while-Schleife 
reinspringt.
1
while((UCA1IFG&UCRXIFG)==0);  
2
muAntwString[0]=UCA1RXBUF;

Ich kann im Register nichts sehen! Also denk ich das ich nichts 
empfange!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.