打印

CC1101接收中断问题

[复制链接]
1760|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
土豆泥吃货|  楼主 | 2016-3-25 14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM8L+CC1101,在调试CC1101接收程序时,单步调试时程序会卡死在判断是否进入接收中断, 我就改了一下寄存器CC1101_IOCFG0 ,改为0X04时可以通过,但是应该没有能够接收数据,因为判断是错的,就跳出来了,这寄存器应该怎么设置,还是其他什么问题,请大神赐教了,接收函数如下:
void RF_RecvHandler(void)
{
    INT8U error=0, i=0, length=0, recv_buffer[65]={ 0 };
   
    CC1101SetTRMode(RX_MODE);           // 设置RF芯片接收模式,接收数据
   
    if (0 == CC_IRQ_READ())             // 检测无线模块是否产生接收中断
    {
        while (CC_IRQ_READ() == 0);

        // 数据请零,防止误判断
        for (i=0; i<SEND_LENGTH; i++)   { recv_buffer[i] = 0; }
            
        // 读取接收到的数据长度和数据内容
        length = CC1101RecPacket(recv_buffer);
      
        // 判断数据是否有误,接收到的信号应该为0-9
        for (i=0, error=0; i<10; i++)
        {
            if (recv_buffer[i] != i)    { error=1; break; } // 数据出错
        }

        if ((length==10) && (error==0))                     // 数据正确
        {
            LED0_TOG();                     // LED闪烁,用于指示收到正确数据
            USART_Send("Receive ok\r\n", 12);           
            CC1101SendPacket(AckBuffer, ACK_LENGTH, ADDRESS_CHECK);
            
            RecvCnt++;
        }
    }   
}

相关帖子

沙发
suzhanhua| | 2016-3-25 22:38 | 只看该作者
没有用过cc1101

使用特权

评论回复
板凳
suzhanhua| | 2016-3-25 22:40 | 只看该作者
一般都是配置的问题了。

使用特权

评论回复
地板
土豆泥吃货|  楼主 | 2016-3-26 15:15 | 只看该作者
suzhanhua 发表于 2016-3-25 22:40
一般都是配置的问题了。

那你有没有用过这个,在寄存器的配置上有什么要求

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

17

帖子

1

粉丝