用TI官网上
的例子,
串口调试助手,老看不到收到的
数据,谁试过的?
代码://******************************************************************************
//
MSP430G2xx3 Demo - USCI_A0, 9600 UART Echo ISR, DCO SMCLK
//
//
Description: Echo a received character, RX ISR used. Normal mode is
LPM0.
// USCI_A0 RX interrupt triggers TX Echo.
// Baud rate divider
with 1MHz = 1MHz/9600 = ~104.2
// ACLK = n/a, MCLK = SMCLK = CALxxx_1MHZ =
1MHz
//
// MSP430G2xx3
//
-----------------
// /|\| XIN|-
// | |
|
// --|RST XOUT|-
// |
|
// | P1.2/UCA0TXD|------------>
// |
| 9600 - 8N1
// |
P1.1/UCA0RXD|<------------
//
// D. Dang
// Texas Instruments
Inc.
// February 2011
// Built with CCS Version 4.2.0 and IAR Embedded
Workbench Version:
5.10
//******************************************************************************
#include "msp430g2553.h"
void
main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop
WDT
BCSCTL1 = CALBC1_1MHZ; // Set DCO
DCOCTL =
CALDCO_1MHZ;
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD,
P1.2=TXD
P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD,
P1.2=TXD
P2DIR = 0xff;
UCA0CTL1 |= UCSSEL_2; //
SMCLK
UCA0BR0 = 104; // 1MHz 9600
UCA0BR1 =
0; // 1MHz 9600
UCA0MCTL = UCBRS0;
// Modulation UCBRSx = 1
UCA0CTL1 &= ~UCSWRST;
// **Initialize USCI state machine**
IE2 |= UCA0RXIE;
// Enable USCI_A0 RX interrupt
__bis_SR_register(LPM0_bits +
GIE); // Enter LPM0, interrupts enabled
}
// Echo back RXed
character, confirm TX buffer is ready first
#pragma
vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
while
(!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer
ready?
UCA0TXBUF = UCA0RXBUF;// TX -> RXed character
}