怎样实现用UART中断发送数据,以前都是在主程序里给 UCA1TXBUF赋值发送,没问题,可用中断却不行了,请高手指教
TI给的例程没有发送中断的
#include "msp430x54x.h" int n; void Delay() {_NOP();} void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P5SEL |=BIT6+BIT7; //USCI_A1 TXD/RXD P5DIR &=~BIT7; P5DIR |=BIT5+BIT6; P5OUT |= BIT5; UCA1CTL1 |= UCSWRST; // **Put state machine in reset** UCA1CTL1 |= UCSSEL_1; // CLK = ACLK UCA1BR0 = 3; // 32kHz/9600= (see User's Guide) UCA1BR1 = 0; // UCA1MCTL = UCBRS_3+UCBRF_0; // Modulation UCBRSx=3, UCBRFx=0 UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine** UCA1IE |= UCTXIE; // Enable USCI_A0 RX interrupt //UCA1TXBUF=0x10; __bis_SR_register(LPM3_bits + GIE); // Enter LPM3, interrupts enabled __no_operation(); // For debugger } #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 break; case 4: while (!(UCA1IFG&UCTXIFG)); // USCI_A1 TX buffer ready? UCA1TXBUF=0x33; break; // Vector 4 - TXIFG default: break; } }
[ 本帖最后由 zzbaizhi 于 2012-3-27 16:48 编辑 ]
|