打印
[CC1101]

求助!CC1101主机从机距离2米,2kbuad GFSK 丢包率在10%左右,怎么降低丢包率呢?

[复制链接]
1319|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
看花开花落|  楼主 | 2016-11-11 12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CC1101 主机与从机之间进行1对1通信,主机发送一包数据,从机接收到主机的数据后给主机返回一包数据,GDO0引脚配置是0x06,经过试验发现主机发送一包数据数据后,有时候从机收不到,主机发送100包,从机只收到90包左右。通过示波器检测GDO0引脚,当未收到主机的数据时,GDO0引脚也不发生跳变。主机发送数据时,发送每一包数据GDO0引脚都有跳变,所以我认为主机每包数据都发送成功。

以下是我的主从机配置帮忙检查以下是否有误。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{CC1101_IOCFG0,      0x06},
{CC1101_FIFOTHR,     0x47},
{CC1101_PKTCTRL0,    0x05},//0x05 default
{CC1101_CHANNR,      0x01},
{CC1101_FSCTRL1,     0x06},
{CC1101_FREQ2,       0x0F},
{CC1101_FREQ1,       0x62},
{CC1101_FREQ0,       0x76},
{CC1101_MDMCFG4,     0xF6},//f6
{CC1101_MDMCFG3,     0x43},//43
{CC1101_MDMCFG2,     0x13},//13  GFSK
{CC1101_DEVIATN,     0x15},
{CC1101_MCSM0,       0x18},
{CC1101_FOCCFG,      0x16},
{CC1101_WORCTRL,     0xFB},
{CC1101_FSCAL3,      0xE9},
{CC1101_FSCAL2,      0x2A},
{CC1101_FSCAL1,      0x00},
{CC1101_FSCAL0,      0x1F},
{CC1101_TEST2,       0x81},
{CC1101_TEST1,       0x35},
{CC1101_MCSM1,       0x30},

以下是我的接收函数
INT8U CC1101RecPacket( INT8U *rxBuffer )
{
    INT8U status[2];
    INT8U pktLen;
    INT16U x = 0;

    if ( CC1101GetRXCnt( ) != 0 )
    {
        pktLen = CC1101ReadReg(CC1101_RXFIFO);           // Read length byte
        if( ( CC1101ReadReg( CC1101_PKTCTRL1 ) & ~0x03 ) != 0 )
        {
            x = CC1101ReadReg(CC1101_RXFIFO);x=x;
        }
        if( pktLen == 0 )           { return 0; }
        else                        { pktLen --; }
        CC1101ReadMultiReg(CC1101_RXFIFO, rxBuffer, pktLen); // Pull data
        CC1101ReadMultiReg(CC1101_RXFIFO, status, 2);   // Read  status bytes

        CC1101ClrRXBuff( );

        if( status[1] & CRC_OK ) {   return pktLen; }
        else                     {   return 0; }
    }
    else   {  return 0; }                               // Error
}

相关帖子

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

本版积分规则

1

主题

1

帖子

0

粉丝