TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430F5438: 关于UART的问题

Part Number:MSP430F5438

过年好!

这几天在调试一个UART的问题,配置如下:

UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
UCA1CTL0 = UCMODE_0; // 选择串口功能 UCA1CTL0 &= ~UCPEN; //无校验
UCA1CTL0 &= ~UC7BIT; //8位数据位
UCA1CTL0 &= ~UCSPB; //1位停止位
UCA1CTL1 |= UCSSEL_1; // CLK = ACLK
UCA1BR0 = 0x03; // 32kHz/9600=3.41 
UCA1BR1 = 0x00; //
UCA1MCTL = UCBRS_3 + UCBRF_0; // Modulation UCBRSx=3, UCBRFx=0
// UCA1CTL1 &= ~UCDORM;
UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA1IE |= UCRXIE; // Enable USCI_A0 RX interrupt

接收:

#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
at_buf[at_buf_ptr++] = UCA1RXBUF;
if ( UCA1RXBUF == 0x0A )
{
}
break;
case 4:
break; // Vector 4 – TXIFG
default:
break;
}
}

描述:

1,使用的配置是波特率9600,在与其它9600的通讯中,是正常的。比如转为U口后使用串口调试,将串口工具设置为9600,工具及MCU都是正常的;

2,与明确配置为9600的模组进行通信,也是正常的,可收可发;

问题:

3,当模组为自适应波特率时,不能正常通讯,收发均不正常,丢包乱码;

4,不与外界连接,将TX与RX短接后,数据无触发,多数情况下只能收到0D 0A之类的字符。

我这是哪里设置的少一个步骤吗?

谢谢。

Jx Wang:

补充一句:

在写入TXBUF的时候,可看到RXBUF中已经有了这个值,但是USCI_A1_VECTOR没有触发,只有0D及0A才能触发

,

Cherry Zhou:

您好我们已收到您的问题并升级到英文论坛,如有答复将尽快回复您。谢谢!

,

Jx Wang:

仍然是以上的配置,TX与RX短接的情况下,发送数据后,只有最后一个字符被接受,其它的丢失了,是哪里配置不到位吗?

,

Cherry Zhou:

Jx Wang 说:当模组为自适应波特率时,

您好,请问您指的自适应波特率是?当使用不同的波特率时,您可能需要调整时钟源和 UCA1BRx 寄存器。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5438: 关于UART的问题
分享到: 更多 (0)