希望帮看下,程序,不知道程序有错没?实际中进入不了接收中断,于是想通过添加 IFG1 = URXIFG0;软件仿真也是进入不了接收中断,怎么解决?
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P1SEL|= BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1DIR&=~BIT1; //接受端口为输入
P1DIR|=BIT2; //p1.2为输出
P1DIR|=BIT0+BIT6;
P1OUT=0X00;
//开始设置串口
UCTL0|=SWRST;
ME1|=URXE0;
UCTL0 |= CHAR; // 选择8位字符
UTCTL0 |= SSEL0; // UCLK = ACLK
UBR00 = 0x03; // 波特率9600
UBR10 = 0x00; //
UMCTL0 = 0x51; // Modulation
UCTL0 &= ~SWRST; // 初始化UART状态机
// Enable USCI_A0 RX interrupt
IE1=URXIE0;
_EINT();
// IFG1 = URXIFG0;
while(1);
}
#pragma vector =USART0RX_VECTOR
__interrupt void usart0_rx(void)
{
// while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?
// UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
P1OUT=0XFF;
}
|