请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR2355 有人能告诉我如何解决以下问题吗: 我生成一个命令,无线电回传命令,然后生成"ACK",但我的代码生成"AACK"。我不确定如何解决这个问题,或者为什么会出现两次 A...如果我尝试在 ISR 外部加载 UCA1TXBUF,它不起作用????
代码:
#include #include #include #include "rc.h" #include "LPRSnot.h" volatile char * prx; char incoming[20]; const char * PTX; const char * configCmdAck[]={"ER_CMD#A01"、"ER_CMD#W2"、"ER_CMD#B1"}; const char * configCmdAck[]={"t t = t void t = t t t t;t t t tolean t = t t t t t t = t tack WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器 IOconfig; initClockTo16MHz(); inituart(); PRx =传入; PTX = configCmdAck[0]; while (1) { _bis_SR_register (LPM3_bits + GIE);//go to sleep:LPM3 如果(TX){ PTX++; } 否则{ if (!strncmp (传入、configCmdAck[i]、10)) { PTX = teback; i++; UCA1IFG |= UCTXIFG; } prx++; } } #pragma vector=USCI_A1_vector __interrupt void M (void) { switch (__evo_in_range (UCA1IV、USCI_UART_UCTXCPTIFG)) { USCI_NONE 案例:中断; USCI_UART_UCRXIFG 案例: TX = F; * prx = UCA1RXBUF; _BIC_SR_REGISTER_ON_EXIT (LPM3_BITS); 中断; USCI_UART_UCTXIFG 案例: TX = T; 如果(* PTX!='\0') UCA1TXBUF =* PTX; _BIC_SR_REGISTER_ON_EXIT (LPM3_BITS); 中断; 案例 USCI_UART_UCSTTIFG:中断; 案例 USCI_UART_UCTXCPTIFG:break; } }
图片: