Problem in Receiving char on MSP430F449

Apr 03, 2005 1 Replies

Hi, I am having problem in receiving any char using the following code on MSP430-449STK2 board from OLIMEX.



This code is as it is taken from example "fet440_usart01_19200" given with IAR.



I have been struggling with this since ages.... :-(



Any help in this matter willbe appreciated.



Regards,



-mkh



#include



void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT FLL_CTL0 |= XCAP14PF; // Configure load caps UTCTL0 = SSEL1; // UCLK = SMCLK UBR00 = 0x36; // 1MHz 19200 UBR10 = 0x00; // 1MHz 19200 UMCTL0 = 0x00; // no modulation UCTL0 = CHAR; // 8-bit character *SWRST* ME1 |= UTXE0 + URXE0; // Enable USART0 TXD/RXD IE1 |= URXIE0; // Enable USART0 RX interrupt P2SEL |= 0x30; // P2.4,5 = USART0 TXD/RXD P2DIR |= 0x10; // P2.4 output direction _EINT(); // Enable interrupts



for (;;) // { _BIS_SR(CPUOFF); // Enter LPM0 _NOP(); // Required only for C-spy } }



interrupt[UART0RX_VECTOR] void usart0_rx (void) { while ((IFG1 & UTXIFG0) == 0); // USART0 TX buffer ready? TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0 }



I can't go into it in detail, but how about this for an approach:

(1) Take the character echo out of interrupt into a tight loop in main(). That eliminates interrupt snafus. Remember to test for character received etc. (2) Make it flash a LED when it receiuves a character. If it doesn't, the problem is on the receive side (have you selected port alternate functions etc.?) (3) Use a scope to check that the character is getting to the board at all, and if so, if anything at all comes out of the transmit port.

Paul Burke

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required