This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[msp430f2274] How to extract the desired data from UCA0RXBUF

Other Parts Discussed in Thread: MSP430FG439

I followed the sample code from the TI.
The ez430-rf2500 target board receives an external signal from a heart rate board(MSP430fg439). I first pass the value of UCA0RXBUF to UCA0TXBUF for testing. I observe the signal from P3.4(Tx) pin by using oscilloscope. It is square wave and it is correct. Then I try to pass the value to a declared variable "aNumber" and try to display this signal on the GUI (I hav alrdy set the location for extra number and the preset 2-digit number can be seen on the GUI).

But now my AP can not detect the End Device. Every time i plug in the ED, the AP stops blinking. But after a while it continues blinking without showing the ED. And when i press the pushbutton on the ED, the red LED on the ED lights.

Im expecting the ED to blink green LED a few seconds once (as the DEMO) and the GUI to show the signal from heart rate board.

Im thinking that the problem could be the extracting part. From the buffer, i hav an 8-digit data with 1 start bit and 1 stop bit (is it? I count the sqares). I guess that i may need to extract the 8-digit data from the buffer. Is it? How to extract? If this is not the problem. How can i fix?


Here is my code. I only show the added parts in Main and interrupt routine.

Main()
{

  P3SEL = 0x30;                             // P3.4,5 = USCI_A0 TXD/RXD
  P3DIR = 0xFF;                             // All P3.x outputs
  P3OUT = 0;                                // All P3.x reset

  //Initialize Rx
  UCA0CTL1 |= UCSSEL_2;                     // SMCLK
  UCA0BR0 = 8;                                // 1MHz 115200
  UCA0BR1 = 0;                                 // 1MHz 115200                
  UCA0MCTL = UCBRS_6;                       // Modulation UCBRSx = 6
  UCA0CTL1 &= ~UCSWRST;                // **Initialize USCI state machine**
  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX interrupt
}

#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
  while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?
  //UCA0TXBUF = UCA0RXBUF;              // I test the signal from P3.4
  aNumber = UCA0RXBUF;
}

Anybody can help???? Tks in advance :)

**Attention** This is a public forum