|
MSP430F2274 CC2500 两块无线传输模块 回传问题
[复制链接]
使用的是IAR
动作如下:
从计算机端发送,电池模块LED灯亮
接着电池模块回传,计算机端LED灯亮
结果没回传到计算机端, 请大神看看 !
计算机传送端 代码如下:
//---------------------------------------------------------------------------
- // MSP430F2274
- //----------------------------------------------------------------------------
-
-
-
- #include "include.h"
-
- extern char paTable[];
- extern char paTableLen;
-
- char txBuffer[64];
- char rxBuffer[64];
- unsigned int i;
- int k =1 ;
- int j;
- int m =1 ;
- void main (void)
- {
-
- WDTCTL = WDTPW + WDTHOLD; // Stop WDT
-
- TI_CC_SPISetup(); // Initialize SPI port
-
- TI_CC_PowerupResetCCxxxx(); // Reset CCxxxx
- writeRFSettings(); // Write RF settings to config reg
- TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//Write PATABLE
P1DIR &= ~(TI_CC_SW1); //Input
- P1OUT |= (TI_CC_SW1); //Pull high
- P1REN |= (TI_CC_SW1); //Enable internal Pull up/low
- // --Add P2.6 P2.7 as GPIO
- P2SEL &= ~(TI_CC_GDO0_PIN+TI_CC_GDO2_PIN);
- // --Add Clear LEDs on start
- TI_CC_LED_PxOUT &= ~(TI_CC_LED1 + TI_CC_LED2); //Outputs Low as OFF
-
- // Port1 Interrupt
- TI_CC_SW_PxIES = TI_CC_SW1; //Int on falling edge
- TI_CC_SW_PxIFG &= ~(TI_CC_SW1); //Clr flags
- TI_CC_SW_PxIE = TI_CC_SW1; //Activate enables
- TI_CC_LED_PxDIR = TI_CC_LED1 + TI_CC_LED2; //Outputs
// RF interrupt
- TI_CC_GDO0_PxIES |= TI_CC_GDO0_PIN; // Int on falling edge (end of pkt)
- TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN; // Clear flag
- TI_CC_GDO0_PxIE |= TI_CC_GDO0_PIN; // Enable int on end of packet
-
- TI_CC_SPIStrobe(TI_CCxxx0_SRX); // Initialize CCxxxx in RX mode.
- // When a pkt is received, it will
- while(k<3)
- {
- j = 50000; // Delay
- do (j--);
- while (j != 0);
-
txBuffer[0] = 2; // Packet length
- txBuffer[1] = 0x01; // Packet address
- txBuffer[2] = 'C'; // Gary modified as 'A'(in ASCII)
- RFSendPacket(txBuffer, 3); // Send value over RF
- k++;
- }
- P2IFG &= ~TI_CC_GDO0_PIN; // After pkt TX, this flag is set.
- _BIS_SR(LPM3_bits + GIE); // Enter LPM3, enable interrupts
- }
-
- // The ISR assumes the int came from the pin attached to GDO0 and therefore
- // does not check the other seven inputs. Interprets this as a signal from
- // CCxxxx indicating packet received.
- #pragma vector=PORT2_VECTOR
- __interrupt void port2_ISR (void)
- {
- char len=2; // Len of pkt to be RXed (only addr
- // plus data; size byte not incl b/c
- // stripped away within RX function)
- if (RFReceivePacket(rxBuffer,&len)) // Fetch packet from CCxxxx
-
- // TI_CC_LED_PxOUT ^= rxBuffer[1]; // Toggle LEDs according to pkt data
- {
- if (rxBuffer[0]==0x02)
- {
- if (rxBuffer[1]=='C')
- {
- TI_CC_LED_PxOUT &= ~(TI_CC_LED1); // Clear Red LED
- TI_CC_LED_PxOUT |= (TI_CC_LED2); // Set Green LEDs
-
- }
- else
- {
- TI_CC_LED_PxOUT &= ~(TI_CC_LED2); // Clear Green LEDs
- TI_CC_LED_PxOUT |= (TI_CC_LED1); // set Red LEDs
-
-
- }
- }
- }
- P2IFG &= ~TI_CC_GDO0_PIN; // Clear flag
- }
-
-
复制代码
电池模块接收端 代码如下:
|
|