关于msp430程序问题#pragma vector=USCIAB0RX_VECTOR__interrupt void USCI0RX_ISR(void){while (IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?UCA0TXBUF = UCA0RXBUF; // TX -> RXed character}--interrupt void TIMER1_A0(void){TA1CCTL0&=~CCIFG;TA1CTL=MC_0
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/03 09:39:41
关于msp430程序问题#pragma vector=USCIAB0RX_VECTOR__interrupt void USCI0RX_ISR(void){while (IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?UCA0TXBUF = UCA0RXBUF; // TX -> RXed character}--interrupt void TIMER1_A0(void){TA1CCTL0&=~CCIFG;TA1CTL=MC_0
关于msp430程序问题
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
while (IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?
UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
}
--interrupt void TIMER1_A0(void)
{
TA1CCTL0&=~CCIFG;
TA1CTL=MC_0;
}
关于msp430程序问题#pragma vector=USCIAB0RX_VECTOR__interrupt void USCI0RX_ISR(void){while (IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?UCA0TXBUF = UCA0RXBUF; // TX -> RXed character}--interrupt void TIMER1_A0(void){TA1CCTL0&=~CCIFG;TA1CTL=MC_0
先说前两句:
while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?
UCA0TXBUF = UCA0RXBUF; // TX -> RXed character
第一句是判断串口的发送是否正在工作,因为要使用发送功能,所以得判断发送是否忙碌,只有在不忙碌的时候才可以启用发送.这一句就是判断发送是否在工作,如果是在工作,那么一直等待到不工作为止.第二句是把接收寄存器的内容直接给到发送寄存器,目的是把接收到的数据直接通过串口再发送出去.
后两句是定时器相关的,TA1CCTL0&=~CCIFG;
TA1CTL=MC_0;
第一句是把定时器的中断标志位软件清零,第二句是停止定时器的计数.