搜索
bottom↓
回复: 37

MSP430+CC2500 GDO0脚的信号,发现它始终为0(说明没发成功),如何解决?

[复制链接]

出0入0汤圆

发表于 2008-6-19 08:51:17 | 显示全部楼层 |阅读模式
我现在用是的MSP430+CC2500,调试一个无线温度采集的系统,程序是用的TI上的例程(收,发测试),我按照他的例程(寄存器配置没改),
其它端口什么的都改好了,但是信号还是不能发送出去,我有试波器看了GDO0脚的信号,发现它始终为0(说明没发成功),问题是找到了,但我又不知道问题出哪了,
不知道有没有人碰到过类似的问题呢?

以下蓝色文字由站长:armok 于:2008-06-20,18:36:58 加入。
你的原标题:“<font color=black>紧急求助~~关于CC2500&GDO0的一个问题
” 不合符规定。请更改成能说明帖子大意的标题
试想一下,如果本论坛的帖子标题清一色的‘帮助!’,‘ADC求救!’等笼统的标题,你在阅读的过程中会造成许多麻烦。
所以本论坛规定:一定要起一个能说明帖子大意的标题。不允许“关于 AVR 的 ADC 使用!”这种笼统标题。作为标题,必须说明清楚:
 ①你是在请教问题,还是在介绍有关的知识?
 ②ADC的问题有许多,你是想说那方面的内容?
注意以上两点,标题应该改成如:“请教:ADC 可以不使用中断吗?”。
起一个能说明帖子大意的标题,除了减轻我们的帖子分类整理工作,还方便其它人阅读,节省大家的时间。
注:使用合格的标题,对你来说只是举手之劳,但却会为我们的管理工作提供很大的便利。谢谢你的支持。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入42汤圆

发表于 2008-6-19 11:41:22 | 显示全部楼层
我修改TI上的例程到Freescale上收发正常啊,你的是不是硬件问题.

出0入0汤圆

 楼主| 发表于 2008-6-19 12:15:33 | 显示全部楼层
硬件没问题的!GDOO是是个专用引脚,我寄存器设的是0X06,没错阿!
不知道还有什么地方要注意的??

出0入42汤圆

发表于 2008-6-19 15:00:15 | 显示全部楼层
是不是你把GDOO引脚方向设置成输出了!!!

出0入0汤圆

 楼主| 发表于 2008-6-19 16:40:51 | 显示全部楼层

(原文件名:1.jpg)


(原文件名:2.jpg)

出0入0汤圆

 楼主| 发表于 2008-6-19 16:43:46 | 显示全部楼层
#include "include.h"

extern char paTable[];         //功率能量
extern char paTableLen;        //
char thedata;
char txBuffer[4];             //发送缓存
char rxBuffer[4];             //接收缓存
unsigned int i;

void main (void)
{
  
  WDTCTL = WDTPW + WDTHOLD;                 // 关开门狗
//thedata = TI_CC_SPIReadStatus(0x30);
  TI_CC_GDO0_PxDIR &= ~TI_CC_GDO0_PIN;         //设GDOO为输入状态
  TI_CC_SPISetup();                         // 初始化SPI

  TI_CC_PowerupResetCCxxxx();               // 复位 CC2500
  
  writeRFSettings();                        // 配置寄存器
  
  TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//设置功率

  // Configure ports -- switch inputs, LEDs, GDO0 to RX packet info from CCxxxx
  TI_CC_SW_PxIES = TI_CC_SW1;                     //按键选择下降沿触发
  
  TI_CC_SW_PxIFG &= ~(TI_CC_SW1);                //清除按键中断请求
  
  TI_CC_SW_PxIE = TI_CC_SW1;                     //按键中断使能
  
  TI_CC_LED_PxDIR = TI_CC_LED1;                  //设定输出状态
  
  //TI_CC_LED_PxDIR &= ~TI_CC_SW1;
  
  
   
  TI_CC_GDO0_PxIES |= TI_CC_GDO0_PIN;       // 设定为下降沿触发(数据包结束)
  
  TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN;      // 清除中断标志
  
  TI_CC_GDO0_PxIE |= TI_CC_GDO0_PIN;        //中断使能

  TI_CC_SPIStrobe(TI_CCxxx0_SRX);           // Initialize CCxxxx in RX mode.
  //如果接收到数据,则激活MCU                // When a pkt is received, it will
                                            // signal on GDO0 and wake CPU
  _BIS_SR(LPM3_bits + GIE);                 //省电模式 Enter LPM3, enable interrupts
  
  
  
}


// The ISR assumes the interrupt came from a press of one of the four buttons
// and therefore does not check the other four inputs.
#pragma vector=PORT1_VECTOR
__interrupt void port1_ISR (void)
{
  // Build packet
  TI_CC_LED_PxDIR = TI_CC_LED2 ; //led green
  txBuffer[0] = 2;                           // Packet length
  txBuffer[1] = 0x01;                        // Packet address
  txBuffer[2] = (~TI_CC_SW_PxIN >> 4) & 0x0F;// Load four switch inputs
  RFSendPacket(txBuffer, 3);                 // Send value over RF

  P1IFG &= ~(TI_CC_SW1);                    //Clr flag that caused int
  P2IFG &= ~TI_CC_GDO0_PIN;                  // After pkt TX, this flag is set.
   TI_CC_LED_PxDIR &= ~TI_CC_LED2 ;
}                                            // Clear it.


// 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)
{//TI_CC_LED_PxDIR = TI_CC_LED2 ;
  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

  P2IFG &= ~TI_CC_GDO0_PIN;                 // Clear flag
  //TI_CC_LED_PxDIR &= ~TI_CC_LED2 ;
}

出0入42汤圆

发表于 2008-6-19 16:56:01 | 显示全部楼层
你在发送前先把CC2500切到空闲状态!

 txBuffer[0] = 2;                           // Packet length
  txBuffer[1] = 0x01;                        // Packet address
  txBuffer[2] = (~TI_CC_SW_PxIN >> 4) & 0x0F;// Load four switch inputs

 TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);           // 在这里添加这行试试
 RFSendPacket(txBuffer, 3);                 // Send value over RF

出0入42汤圆

发表于 2008-6-19 17:00:51 | 显示全部楼层
这个例程序里没有按键消抖,所以按键时由于抖动原因会导致2次连续的发送,这时很容易会造成CC2500锁死!直接的现象就是GDOO等不到预想的电平,导致MCU也死掉了!

出0入0汤圆

 楼主| 发表于 2008-6-19 17:06:41 | 显示全部楼层
我加了,但是还是不行阿~~到那个老地方就停住了,GDO0始终为低的~

出0入0汤圆

 楼主| 发表于 2008-6-19 17:13:38 | 显示全部楼层
刚刚我就直接发了,没用按键中断了,问题还在?
  to n0831:  
你是怎么处理这个的呢??

出0入42汤圆

发表于 2008-6-19 17:53:37 | 显示全部楼层
那就怪了,你的是430DAY的赠品吧,上面的哪个演示程序可以正常运行吗?

出0入0汤圆

 楼主| 发表于 2008-6-19 18:03:17 | 显示全部楼层
是的,就是那个,那个DEMO程序是可以运行的,但是用这个就不行了,怪了\\

出0入42汤圆

发表于 2008-6-19 18:10:34 | 显示全部楼层
那应该没什么问题啊,太奇怪了.我的可以用的,不过要是不切换到空闲态用几次就死机了.

出0入0汤圆

 楼主| 发表于 2008-6-19 18:18:03 | 显示全部楼层
你有改过哪些地方,会不会是我哪里没改好的??

出0入42汤圆

发表于 2008-6-19 18:33:23 | 显示全部楼层
他那个演示程序就是配合那个模块用的啊,本来就能用的啊,我测试过能用,只是不是很稳定.

出0入0汤圆

 楼主| 发表于 2008-6-20 16:36:18 | 显示全部楼层
请教一下  n0831___
CC2500的即时状态(休眠,空闲,TX,RX)怎样可以读出来呢??

出0入42汤圆

发表于 2008-6-20 18:09:15 | 显示全部楼层
请查看CC2500数据手册的10.1节有对状态字较详细的说明.

出0入0汤圆

 楼主| 发表于 2008-6-24 11:17:57 | 显示全部楼层
^_^_______
发送的问题解决了,原来是引脚的初始化问题,原来我的GDO0正好接在单片机的外部时钟引脚,
而它的PXSEL设置默认为1(1是为外部引脚功能//0才为I/O引脚功能).

出0入0汤圆

 楼主| 发表于 2008-6-24 13:48:14 | 显示全部楼层
我发送了8个字节的数据,2500能接收中断能够进去,但是就是RXBYTES会溢出,每次都一样,请大家帮我分析一下原因!!!
程序我再贴一下:

T:


#include "include.h"

extern  char paTable[];
extern  char paTableLen;


/*发送数据************************************************/
     char txBuffer[] =  
     {0x01 ,0xFE, 0xD6, 0x29, 0x0E, 0x0E, 0x77, 0x88};

/*接收数据************************************************/
    char rxBuffer[];     

unsigned int i;

void delay_ms(void)                              //毫秒延时  
{     
     unsigned int i;
         
     for (i=0; i<1500; i++)  
         {
          _NOP();
         }
}
  

void delay_nms(unsigned int n)                   //延时周期
{
     unsigned int i;
         
     for (i=0; i<n; i++)
          {
           delay_ms();
          }
}

void main (void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // 关闭开门狗;

  TI_CC_SPISetup();                         // 初始化SPI;

  TI_CC_PowerupResetCCxxxx();               // 复位 CCxxxx;
  
  writeRFSettings();                        // 配置寄存器;
  
  TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//配置功率;

  TI_CC_LED_PxDIR = TI_CC_LED1;              //点亮LED1;

  TI_CC_GDO0_PxDIR &= ~TI_CC_GDO0_PIN;       //设置GDO0为输入;
  
  TI_CC_GDO0_PxSEL &= ~TI_CC_GDO0_PIN;       //设置P2.6脚为I/O端口;
  
  TI_CC_GDO0_PxIES &= ~TI_CC_GDO0_PIN;       //下降沿触发中断;
  
  TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN;      // 清除中断标志;
  
  TI_CC_GDO0_PxIE |= TI_CC_GDO0_PIN;        // 使能中断总允许;
  
  TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);         //设置芯片为空闲状态;
  
  
   while(1)
   {
     
     delay_nms(500);
     
     TI_CC_LED_PxDIR |= TI_CC_LED2;
   
     TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);
     
     RFSendPacket(txBuffer,8);                 
     
     delay_nms(50);
     
     TI_CC_LED_PxDIR &= ~TI_CC_LED2;            
   
   }
}



///////////////////////////////////////////////////////////////////////////////////////////////


R:


#include "include.h"

extern  char paTable[];
extern  char paTableLen;

char txBuffer[];

char rxBuffer[];

unsigned int i;

void delay_ms(void)                              //毫秒延时  
{     
     unsigned int i;
         
     for (i=0; i<1500; i++)  
         {
          _NOP();
         }
}
  

void delay_nms(unsigned int n)                   //延时周期
{
     unsigned int i;
         
     for (i=0; i<n; i++)
          {
           delay_ms();
          }
}

void main (void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // 关闭开门狗;

  TI_CC_SPISetup();                         // 初始化SPI;

  TI_CC_PowerupResetCCxxxx();               // 复位 CCxxxx;
  
  writeRFSettings();                        // 配置寄存器;
  
  TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//配置功率;

  TI_CC_GDO0_PxDIR &= ~TI_CC_GDO0_PIN;       //设置GDO0为输入;
  
  TI_CC_GDO0_PxSEL &= ~TI_CC_GDO0_PIN;       //设置P2.6脚为I/O端口;
  
  TI_CC_GDO0_PxIES &= ~TI_CC_GDO0_PIN;       //下降沿触发中断;
  
  TI_CC_GDO0_PxIFG &= ~TI_CC_GDO0_PIN;      // 清除中断标志;
  
  TI_CC_GDO0_PxIE |= TI_CC_GDO0_PIN;        // 使能中断总允许;
  
  TI_CC_SPIStrobe(TI_CCxxx0_SIDLE);         //设置芯片为空闲状态;
  
  //TI_CC_SPIStrobe(TI_CCxxx0_SFRX);          //冲洗RX FIFO缓冲;
  
  TI_CC_SPIStrobe(TI_CCxxx0_SRX);           // 启用RX
  
  //TI_CC_SPIReadStatus(TI_CCxxx0_RXBYTES);   
  
  _BIS_SR(LPM3_bits + GIE);                 // 启用省电模式,中断唤醒;

}

                                          

#pragma vector=PORT2_VECTOR
__interrupt void port2_ISR (void)
{
  
  char len=10;                                                                  
  if (RFReceivePacket(rxBuffer,&len))      
  {P2IE=0X00;
         
  TI_CC_LED_PxDIR |= TI_CC_LED1;
  TI_CC_SPIStrobe(TI_CCxxx0_SFRX);
  delay_nms(200);
   }
  else
  {P2IE=0X00;
    TI_CC_LED_PxDIR |= TI_CC_LED2;
    TI_CC_SPIStrobe(TI_CCxxx0_SFRX);
    delay_nms(200);
  }
  
  
  TI_CC_LED_PxDIR &= ~TI_CC_LED1;
  TI_CC_LED_PxDIR &= ~TI_CC_LED2;
  
   P2IFG &= ~TI_CC_GDO0_PIN;
   P2IE=0XFF;
   TI_CC_SPIStrobe(TI_CCxxx0_SRX);
}


////////////////////////////////////////////////////////////////////////////////
寄存器配置:

    TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG2,   0x0B);  // GDO2 output pin config.
    TI_CC_SPIWriteReg(TI_CCxxx0_IOCFG0,   0x06);  // GDO0 output pin config.
    TI_CC_SPIWriteReg(TI_CCxxx0_FIFOTHR, 0x07);
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTLEN,   0xFF);  // Packet length.
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL1, 0x45);  // Packet automation control.
    TI_CC_SPIWriteReg(TI_CCxxx0_PKTCTRL0, 0x05);  // Packet automation control.
    TI_CC_SPIWriteReg(TI_CCxxx0_ADDR,     0x01);  // Device address.
    TI_CC_SPIWriteReg(TI_CCxxx0_CHANNR,   0x00); // Channel number.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL1,  0x07); // Freq synthesizer control.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCTRL0,  0x00); // Freq synthesizer control.
    TI_CC_SPIWriteReg(TI_CCxxx0_FREQ2,    0x5D); // Freq control word, high byte
    TI_CC_SPIWriteReg(TI_CCxxx0_FREQ1,    0x93); // Freq control word, mid byte.
    TI_CC_SPIWriteReg(TI_CCxxx0_FREQ0,    0xB1); // Freq control word, low byte.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG4,  0x2D); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG3,  0x3B); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG2,  0x73); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG1,  0x22); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_MDMCFG0,  0xF8); // Modem configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_DEVIATN,  0x00); // Modem dev (when FSK mod en)
    TI_CC_SPIWriteReg(TI_CCxxx0_MCSM1 ,   0x3F); //MainRadio Cntrl State Machine
    TI_CC_SPIWriteReg(TI_CCxxx0_MCSM0 ,   0x18); //MainRadio Cntrl State Machine
    TI_CC_SPIWriteReg(TI_CCxxx0_FOCCFG,   0x1D); // Freq Offset Compens. Config
    TI_CC_SPIWriteReg(TI_CCxxx0_BSCFG,    0x1C); //  Bit synchronization config.
    TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL2, 0xC7); // AGC control.
    TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL1, 0x00); // AGC control.
    TI_CC_SPIWriteReg(TI_CCxxx0_AGCCTRL0, 0xB2); // AGC control.
    TI_CC_SPIWriteReg(TI_CCxxx0_FREND1,   0xB6); // Front end RX configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_FREND0,   0x10); // Front end RX configuration.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL3,   0xEA); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL2,   0x0A); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL1,   0x00); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSCAL0,   0x11); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_FSTEST,   0x59); // Frequency synthesizer cal.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST2,    0x88); // Various test settings.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST1,    0x31); // Various test settings.
    TI_CC_SPIWriteReg(TI_CCxxx0_TEST0,    0x0B);  // Various test settings.
}

出0入42汤圆

发表于 2008-6-24 16:12:57 | 显示全部楼层
你发送的时候切换到了空闲状态,同样,接收也有同样的问题,每次切换到接收前也要先切换到空闲状态.并且要及时清洗缓冲区的!

出0入0汤圆

 楼主| 发表于 2008-6-24 16:58:59 | 显示全部楼层
我发送一个数据能收到的,但是发一组数据就收不到了??
至于你说的,我已经写进去了~~

出0入0汤圆

发表于 2008-7-3 16:52:46 | 显示全部楼层
我改了下面这个函数,不知道对不
void TI_CC_SPISetup(void)
{
  TI_CC_CSn_PxOUT |= TI_CC_CSn_PIN;
  TI_CC_CSn_PxDIR |= TI_CC_CSn_PIN;         // /CS disable

  /////IE2 |= UCB0TXIE + UCB0RXIE; ///ME2 |= USPIE1;                            // Enable USART1 SPI mode同步中断模式使能
  UCB0CTL0 |=UCMST + UCSYNC + UCCKPL + UCMSB; ///UCTL1 |= CHAR + SYNC + MM;           // 8-bit SPI Master **SWRST** 高字节先
  UCB0CTL1 |= UCSSEL_2;////UCSSEL0 + UCSSEL1 + UCSWRST;///UTCTL1 |= CKPL + SSEL1 + SSEL0 + STC;     // SMCLK, 3-pin mode
  UCB0BR0 = 0X09;////UCB0BR0 = 0x02;                             // UCLK/2
  UCB0BR1 = 0x00;                             //
  ////UCA0MCTL = 0x6b; //UMCTL1 = 0x00;                            // No modulation
  TI_CC_SPI_USART1_PxSEL |= TI_CC_SPI_USART1_SIMO + TI_CC_SPI_USART1_SOMI + TI_CC_SPI_USART1_UCLK;
                                            // SPI option select
  TI_CC_SPI_USART1_PxDIR |= TI_CC_SPI_USART1_SIMO + TI_CC_SPI_USART1_UCLK;
                                            // SPI TXD out direction
  UCB0CTL1 &= ~UCSWRST; ///UCTL1 &= ~SWRST;                          // Initialize USART state machine
}

出0入0汤圆

发表于 2008-7-3 16:53:50 | 显示全部楼层
你们改了点什么,(管脚我也改了),我用ez430-rf2500

出0入0汤圆

 楼主| 发表于 2008-7-3 20:25:57 | 显示全部楼层
其实不用改太多,就几个引脚改一下,然后在收发之前将芯片制成空闲状态!!

出0入0汤圆

发表于 2008-7-4 09:08:21 | 显示全部楼层
UCB0BR0 = 0X09;////UCB0BR0 = 0x02;                             // UCLK/2 ,我的不改这个会死机,没有什么波特率的要求吗

出0入0汤圆

 楼主| 发表于 2008-7-4 11:48:38 | 显示全部楼层
#include "TI_CC_msp430.h"


#define TI_CC_LED_PxOUT         P1OUT
#define TI_CC_LED_PxDIR         P1DIR
#define TI_CC_LED1              0x01
#define TI_CC_LED2              0x02


#define TI_CC_SW_PxDIR          P1DIR
#define TI_CC_SW_PxIN           P1IN
#define TI_CC_SW_PxIE           P1IE
#define TI_CC_SW_PxIES          P1IES
#define TI_CC_SW_PxIFG          P1IFG
#define TI_CC_SW1               0x04


#define TI_CC_GDO0_PxOUT        P2OUT
#define TI_CC_GDO0_PxIN         P2IN
#define TI_CC_GDO0_PxDIR        P2DIR
#define TI_CC_GDO0_PxIE         P2IE
#define TI_CC_GDO0_PxIES        P2IES
#define TI_CC_GDO0_PxIFG        P2IFG
#define TI_CC_GDO0_PxSEL        P2SEL
#define TI_CC_GDO0_PIN          0x40


#define TI_CC_GDO2_PxOUT        P2OUT
#define TI_CC_GDO2_PxIN         P2IN
#define TI_CC_GDO2_PxDIR        P2DIR
#define TI_CC_GDO2_PIN          0x80

#define TI_CC_CSn_PxOUT         P3OUT
#define TI_CC_CSn_PxDIR         P3DIR
#define TI_CC_CSn_PIN           0x01


//----------------------------------------------------------------------------
// Select which port will be used for interface to CCxxxx
//----------------------------------------------------------------------------
#define TI_CC_RF_SER_INTF       TI_CC_SER_INTF_USCIB0  // Interface to CCxxxx

出0入0汤圆

 楼主| 发表于 2008-7-4 11:49:51 | 显示全部楼层
端口改好就好了,波特率不用改的~

出0入0汤圆

发表于 2008-7-4 15:31:45 | 显示全部楼层

出0入0汤圆

发表于 2008-7-4 15:32:36 | 显示全部楼层
能说说SimpliciTI,怎么用吗

出0入0汤圆

发表于 2008-7-4 23:37:49 | 显示全部楼层
是指P2.6和P2.7吧。你在18楼发的试验代码,收和发中怎么都是对GDO0的连接的管脚的中断,接收应该是GDO2吧?

出0入0汤圆

 楼主| 发表于 2008-7-7 09:05:38 | 显示全部楼层
那断是我的测试程序,一个板是在一直发数据的,另一个板子做接收,看它是否能正确接收!!
还有的是发的数据,前两个字节应该是固定的,第一个字节是发送的数据长度,第二个字节是地址(因为配置寄存器的时候已经设置好了)

18楼的程序中
(原文件名:11.jpg)

缓存中的数据是不对了,应该改成char txBuffer[] = {0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};

接收时原来的  char len=10;                                                                  
              if (RFReceivePacket(rxBuffer,&len))   
也应该改成    char len;                                                                  
              if (RFReceivePacket(rxBuffer,&len))

出0入0汤圆

发表于 2008-7-16 15:51:54 | 显示全部楼层
请问:你是用http://focus.ti.com/lit/an/slaa325/slaa325.zip这里的程序吗?
我发现 TI_CC_spi.c中,TI_CC_SER_INTF_USCIB0中
void TI_CC_SPIWriteReg(char addr, char value)
{
    TI_CC_CSn_PxOUT &= ~TI_CC_CSn_PIN;      // /CS enable
    while (TI_CC_SPI_USCIB0_PxIN&TI_CC_SPI_USCIB0_SOMI);// Wait for CCxxxx ready
    IFG2 &= ~UCB0RXIFG;                     // Clear flag
    UCB0TXBUF = addr;                       // Send address
    while (!(IFG2&UCB0RXIFG));              // Wait for TX to finish??
    IFG2 &= ~UCB0RXIFG;                     // Clear flag??
    UCB0TXBUF = value;                      // Send data
    while (!(IFG2&UCB0RXIFG));              // Wait for TX to finish??
    TI_CC_CSn_PxOUT |= TI_CC_CSn_PIN;       // /CS disable
}有点不对,while (!(IFG2&UCB0RXIFG));              // Wait for TX to finish??中为什么不是while (!(IFG2&UCB0TXIFG));

出0入0汤圆

发表于 2008-7-30 09:45:11 | 显示全部楼层
不知道能不能给些cc2500的WOR功能代码参考,yisheng-1@163.com

出0入0汤圆

发表于 2008-8-4 16:17:04 | 显示全部楼层
大吓们给我看看,这个东西怎么编程.

(原文件名:未命名3.JPG)

出0入0汤圆

发表于 2009-6-3 10:57:17 | 显示全部楼层
正用的上。

出0入0汤圆

发表于 2010-6-3 08:56:49 | 显示全部楼层
正为此事头疼!

出0入0汤圆

发表于 2011-5-12 15:42:18 | 显示全部楼层
楼主,我毕业设计就是你发帖的题目,请问可不可以指导指导我?

出0入0汤圆

发表于 2012-6-6 16:54:01 | 显示全部楼层
学习一下~~~~~~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-28 13:47

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表