主题中讨论的其他部件:MSP-EXP430FR2433, MSP430FR5869
您好,
我正在从正在工作的UART TX示例中添加中断功能。
我尝试在中断例程中中断开关壳体,但它从未触发。
代码与以下示例基本相同: dev.ti.com/.../node
有人能给我建议吗?
这是代码。
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
P1DIR = 0x01;
P1OUT = 0x00;
P1REN = 0x00;
P2DIR &= ~BIT3; // Set P2.3 as in
P2REN |= BIT3; // enable pull-up/down resistor
P2OUT |= BIT3; // pull-up resistor
P2IES |= BIT3; // enable interrupt
P1SEL1 &= ~(BIT4 | BIT5); // USCI_A0 UART operation
P1SEL0 |= BIT4 | BIT5;
UCA0CTLW0 |= UCSWRST; // Put USCI_A0 to software reset
UCA0CTLW0 |= UCSSEL__SMCLK; // Use SMCLK(1048576Hz) for baud rate calculation
UCA0BRW = 9; // N = f/BR = 1048576/115200 = 9
UCA0MCTLW = 8;
UCA0CTLW0 &= ~UCSWRST; // Release USCI_A0 software reset
UCA0IE |= UCRXIE; // Enable USCI_A0 RX interrupt
__bis_SR_register(GIE);
//__bis_SR_register(LPM3_bits|GIE); //LPM3 not work when using SMCLK
PM5CTL0 &= ~LOCKLPM5; // Disable the GPIO power-on default high-impedance mode to activate previously configured port settings
while(1);
}
#pragma vector=USCI_A0_VECTOR
__interrupt void USCI_A0_ISR(void)
{
switch(__even_in_range(UCA0IV,USCI_UART_UCTXCPTIFG))
{
case USCI_NONE: break;
case USCI_UART_UCRXIFG:
P1OUT ^= 0x01;
UCA0TXBUF = UCA0RXBUF;
break;
case USCI_UART_UCTXIFG: break;
case USCI_UART_UCSTTIFG: break;
case USCI_UART_UCTXCPTIFG: break;
default: break;
}
}
