如题我搭了一个串口电路,下的TI官方例子程序,程序功能是把从电脑发送过来的数据收到后再发还给电脑,程序附下,用SSCOM32串口助手,发现电路一上电(没有点击发送数据)就自动收乱码,点击发送的数据电脑也能收到,不知道怎么回事?我把外接晶振改1M,波特率相应也设置好了,请高手帮帮忙!!!
#include
void main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
BCSCTL1 |= XTS; // ACLK = LFXT1 = HF XTAL
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG)); // OSCFault flag still set?
BCSCTL2 |= SELM_3; // MCLK = LFXT1 (safe)
ME2 |= UTXE0 + URXE0; // Enabled USART0 TXD/RXD
UCTL0 |= CHAR; // 8-bit character
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x09; // 1MHz 115200
UBR10 = 0x00; // 1MHz 115200
UMCTL0 = 0x08; // 1MHz 115200 modulation
UCTL0 &= ~SWRST; // Initalize USART state machine
IE2 |= URXIE0; // Enabled USART0 RX interrupt
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
#pragma vector=USART0RX_VECTOR
__interrupt void usart0_rx (void)
{
while (!(IFG2 & UTXIFG0)); // USART0 TX buffer ready?
TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0
}
我把电路检查了一下,现在情况是发数据55能回收到,发其他数据都是返回F5