主题中讨论的其他器件:MSP430G2553
您好!
我尝试了在 Timer A 模块中断服务例程中发送单个字符的代码、但它无法正常工作、请帮助我解决此问题
#include
#define TXLED BIT0
#define RXLED BIT6
#define RXD BIT1
#define TXD BIT2
void UART_init();
void timerA_init();
void GPIO_init();
int x =0;
int main()
{
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_1MHz;
DCOCTL = CALDCO_1MHz;
GPIO_init();
UART_INIT();
timerA_init();
_BIS_SR (LPM0_Bits + GIE);
while (1)
{
}
返回0;
}
void GPIO_init()
{
P1DIR |=(TXLED + RXLED);
P1OUT &=~(TXLED + RXLED);
P1SEL |= RXD + TXD;
P1SEL2 |= RXD + TXD;
}
void timerA_init()
{
TACCTL0 = CCIE;
TACTL = tassel_2 + ID_3 + MC_1;//SMCLK/3、向上计数模式125KHz;
TACCR0 = 125;//1msec
}
#pragma vector=TIMER0_A0_VECTOR
_interrupt void Timer_A (void)
{
UCA0TXBUF ='A';
P1OUT ^= TXLED;
_DELAY_CYCLES (50000);
while (!(IFG2 & UCA0TXIFG));
}
空 UART_INIT()
{
UCA0CTL1 |= UCSWRST;
UCA0CTL1 = UCSSEL_2;//SMCLK
UCA0BR0 = 8;
UCA0BR1=0;
UCA0CTL1 &=~Ω UCSWRST;// USCI 复位被释放以执行操作
// UCA0MCTL = UCBRS0;
}