lhb358 发表于 2014-11-2 15:30:32

请教430F2132 的串口用ACLK怎么输出不了.

硬件采用外部32768晶振
配置程序为
void init_usart0(void) //9600--ACLK
{
        UCA0CTL1 |= UCSSEL_1;                     // CLK = ACLK
        UCA0BR0 = 0x03;                           // 32kHz/9600 = 3.41
        UCA0BR1 = 0x00;                           //
        UCA0MCTL = UCBRS1 + UCBRS0;               // Modulation UCBRSx = 3
        UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**
        IE2 |= UCA0RXIE;                        // Enable USCI_A0 RX interrupt
    P3SEL=0X30;
}
查询发送
int putchar(int ch)
{
    while (!(IFG2 & UCA0TXIFG));            // USCI_A0 TX buffer ready?
    UCA0TXBUF = ch&0xff;                     // TX character
    return 1;
}
发现程序始终停在while (!(IFG2 & UCA0TXIFG));上
改用SMCLK时间,串口有输出,怀疑ACLK问题,但
外部振荡应该没问题,查询起振已通过
do{
      IFG1 &= ~OFIFG;                     // Clear OSCFault flag
      for (i = 0xFF; i > 0; i--);         // Time for flag to set
    }
    while ((IFG1 & OFIFG) != 0);

而且,设置ACLK在P2.0输出也能用示波器看到波型。
若能指点一二,不胜感激

魏茂才MCU 发表于 2014-11-2 15:58:02

不懂,,帮顶,,

lhb358 发表于 2014-11-4 10:04:20

原因找到了,是P2SEL。0设错
页: [1]
查看完整版本: 请教430F2132 的串口用ACLK怎么输出不了.