搜索
bottom↓
回复: 3

cc430 接收数据问题(OPERR置位)

[复制链接]

出0入0汤圆

发表于 2013-8-8 00:21:53 | 显示全部楼层 |阅读模式
大家好,接触cc430不久,rf相关的程序都是在demo程序的基础稍作修改的。我应用的方式是一块设备以一定的时间间隔发送一包数据(仅发送),另一块设备仅负责接收。现在遇到的问题是接收设备运行一段时间后就接收不到数据了,重新复位后又可以收到数据,如此反复。调试时发现OPERR位置位,跟踪发现在ReceiveOn()->Strobe()-> ReadSingleReg()->data_out = RF1ADOUT1B时(我用demo板的demo程序也出现这种情况)。

相关的代码如下:

接收设备:

#define  PATABLE_VAL        (0x05)

void RF_Init(void)
{
SetVCore(2);

ResetRadioCore();
InitRadio();
ReceiveOn();

_EINT();

}

#pragma vector=CC1101_VECTOR
__interrupt void CC1101_ISR(void)
{
// ReceiveOff();
switch(__even_in_range(RF1AIV,32)) // Prioritizing Radio Core Interrupt
{
case 0: break; // No RF core interrupt pending
case 2: break; // RFIFG0
case 4: break; // RFIFG1
case 6: break; // RFIFG2
case 8: break; // RFIFG3
case 10: break; // RFIFG4
case 12: break; // RFIFG5
case 14: break; // RFIFG6
case 16: break; // RFIFG7
case 18: break; // RFIFG8
case 20: // RFIFG9
// Read the length byte from the FIFO
RxBufferLength = ReadSingleReg(RXBYTES);
if (RxBufferLength && (RxBufferLength <= sizeof(RxBuffer)))
{
ReadBurstReg(RF_RXFIFORD, RxBuffer, RxBufferLength);
}
else
{
RxBufferLength = 0;
}

// Stop here to see contents of RxBuffer
__no_operation();

// Check the validity and CRC results
if (RF_IsValidData(RxBuffer, RxBufferLength))
&& (RxBuffer[CRC_LQI_IDX] & CRC_OK))
{
/* 保存数据 */
}

ReceiveOn();
break;
case 22: break; // RFIFG10
case 24: break; // RFIFG11
case 26: break; // RFIFG12
case 28: break; // RFIFG13
case 30: break; // RFIFG14
case 32: break; // RFIFG15
}

__bic_SR_register_on_exit(LPM3_bits);

}

发射设备:

#define  PATABLE_VAL        (0xc4)

void RF_Init(void)
{
SetVCore(2);

ResetRadioCore();
InitRadio();
ReceiveOn();

_EINT();

}

void RF_Send(void)
{
u8 *p_tmp = TxBuffer;

*p_tmp++ = 16;
*p_tmp++ = 'T';
*p_tmp++ = 'T';
memcpy((char *)p_tmp, (char *)g_rfData, 8);
p_tmp += 8;
*p_tmp++ = MMBYTE(g_rfState);
*p_tmp++ = MLBYTE(g_rfState);
*p_tmp++ = LMBYTE(g_rfState);
*p_tmp++ = LLBYTE(g_rfState);
*p_tmp++ = 'T';
*p_tmp++ = 'T';

Transmit( (unsigned char*)TxBuffer,sizeof(TxBuffer));
debug("Send data\r\n");
}

就是这个问题,困扰我很久了,请高手指点,不胜感激。

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2013-8-8 21:05:36 | 显示全部楼层
没有人遇到这个问题吗,求大牛指点啊。

出0入0汤圆

发表于 2013-9-17 12:19:03 | 显示全部楼层
du722 发表于 2013-8-8 21:05
没有人遇到这个问题吗,求大牛指点啊。

我也在整这个问题,QQ:530659965。

出0入0汤圆

发表于 2013-11-6 16:56:04 | 显示全部楼层
du722 发表于 2013-8-8 21:05
没有人遇到这个问题吗,求大牛指点啊。

这个问题我也遇到了,我在接受中断中加上:Strobe( RF_SRX );   //接收使能,然后就可以一直接受数据了,我怀疑是发生中断后,不知道那里把接受使能给关掉了,你这个问题是怎么解决的?

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

本版积分规则

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

GMT+8, 2024-8-25 23:03

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

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