请教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输出也能用示波器看到波型。
若能指点一二,不胜感激
不懂,,帮顶,, 原因找到了,是P2SEL。0设错
页:
[1]