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.

MSP-TS430PZ100C的串口通信UART模式一直失败

Other Parts Discussed in Thread: MSP430F6438, MSPWARE, MAX232

因项目需求,在TI买了MSP-TS430PZ100C的开发板,结果UART通信一直失败,问题都找遍了,还是通信失败,很着急啊!用的是官网上下的实例代码,芯片是MSP430F6438,代码如下:

#include <msp430.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
while(BAKCTL & LOCKIO) // Unlock XT1 pins for operation
BAKCTL &= ~(LOCKIO);
UCSCTL6 &= ~(XT1OFF); // XT1 On
UCSCTL6 |= XCAP_3; // Internal load cap
// Loop until XT1 fault flag is cleared
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag

//usci_a1初始化
P8SEL |= (BIT2+BIT3); //p8.2,p8.3=usci_a1TXD,RXD (F6438)
P8DIR |= BIT2;
P8DIR &=~BIT3; // 选择引脚方向
UCA1CTL1 |= UCSWRST; // 状态机复位
UCA1CTL1 |= UCSSEL_1; // 选择时钟源CLK = ACLK


UCA1BR0 = 0x03; //波特率分频 32768/9600=3.41
UCA1BR1 = 0x00; // Modulation UCBRSx=3, UCBRFx=0
UCA1MCTL = UCBRS_3+UCBRF_0;
UCA1CTL1 &=~UCSWRST; // 启动状态机,即启用串口功能
UCA1IE |= UCRXIE; // 允许接收中断
while(1);
}

#pragma vector=USCI_A1_VECTOR

__interrupt void USCI_A1_ISR(void)
{
switch(__even_in_range(UCA1IV,4))
{
case 0:break; // Vector 0 - no interrupt
case 2: // Vector 2 - RXIFG
while(!(UCA1IFG&UCTXIFG)); // USCI_A1 TX buffer ready?
UCA1TXBUF = UCA1RXBUF; // TX -> RXed character
break;
case 4:break; // Vector 4 - TXIFG
default: break;
}
}

出现的问题:用串口调试助手发送数据,总是没有任何数据显示,没有接收到任何数据。

目前确认的东西:1,板子上确认线是通的,F6438芯片位置放对了。2,晶振焊接成功,确认工作;32768Hz的XT1晶振是起振的(用P口检测输出,是32KHz的方波)。3,USCI_A0,USCI_A1口有UART功能,都在程序中试过了,结果还是没有收到数据。4,USCI_A0的TXD,RXD要使用port mapping controller,按照例程代码使用啦,还是没数据显示。

求问题所在啊,好着急!!

MSP-TS430PZ100C_sch.pdf