CC1101接收部分求助.

玉怀一捧雪 2014-10-23 08:34:30
最近在学习CC1101,看了大半天数据手册有点眉头,就看了网上看了别人的配置程序。
在接收部分没看懂

INT8U halRfReceivePacket(INT8U *rxBuffer, INT8U *length)
{
INT8U status[2];
INT8U packetLength;
INT8U i=leng*4; // 具体多少要根据datarate 和length 来决定
**** (这里没看懂)***
halSpi Strobe( CCxxx0_ SRX); // 进入接收状态
delay(2);
while(GDO0)
{
delay(2);
--i;
if(i<1) //****(这个i一定要根据数据长度来定吗)****
return 0;
}

**下面这句判断语句没看懂,CCxxx0_RXBYTES是状态寄存器,
地址是0x3B,-RX FIFO 中的下溢和比特数
BYTES_IN_RXFIFO为0x7F,为接收缓冲器的有效字节数**

if (( halSpiReadStatus( CCxxx0_RXBYTES) & BYTES_IN_RXFIFO)) // 如果接的字节数不为0
{
packetLength = halSpiReadReg(CCxxx0_RXFIFO);//读出第一个字节,此字节为该帧数据长度
if (packetLength <= *length) // 如果所要的有效数据长度小于等于接收到的数据包的长度
{
halSpiReadBurstReg(CCx xx0_RXFIFO, rxBuffer, packetLength); // 读出所有接收到的数据
*length = packetLength; // 把接收数据长度的修改为当前数据的长度
halSpiReadBurstReg(CCxxx0_RXFIFO, status, 2); // 读出CRC 校验位
halSpi Strobe( CCxxx0_ SFRX); // 清洗接收缓冲区
return (status[1] & CRC_ OK); // 如果校验成功返回接收成功
}
else
{
*length = packetLength;
halSpi Strobe( CCxxx0_ SFRX); // 清洗接收缓冲区
return 0;
}
}
else
return 0;
}

上面两个问题能解锁下吗?
还有一个问题,就是每次片选信号拉点使能后,都得等SO跳变低电平稳定后才能继续,这里我看是用while等待;
我是这么处理的,利用和上面i变量一样的用法,超时直接return了,不知道有没有更好的方法!
...全文
996 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
itcsdn668 2017-04-20
  • 打赏
  • 举报
回复
楼主,有没有CC1101手册,到淘宝买什么资料都没有,不知道怎么用。
silicontra521 2016-10-24
  • 打赏
  • 举报
回复
海尔集成半导体推出了个芯片型号hw3000,用量巨大,距离有2.5公里双向,与si4463差不多,比si4432 si4438远,比A7108 和A7139好很多,如果是10kpbs,比sx1278 远。LoRa没办法快速率,可了解,推荐!
silicontra521 2016-10-20
  • 打赏
  • 举报
回复
HW3000超低双向无线fsk模块完美替代CC1101、CC1120、A7139、A7108、si4432、si4438、si4463
zmszsh 2014-10-25
  • 打赏
  • 举报
回复
延时可以定义一个变量如 i 用while (i--){};
zmszsh 2014-10-25
  • 打赏
  • 举报
回复
引用 1 楼 libin55 的回复:

#define CCxxx0_PATABLE      0x3E
#define CCxxx0_TXFIFO       0x3F
#define CCxxx0_RXFIFO       0x3F
这三个寄存器我数据手册上没看到过,是不是自己设的啊!
手册上有的,数据缓存器地址
玉怀一捧雪 2014-10-23
  • 打赏
  • 举报
回复

#define CCxxx0_PATABLE      0x3E
#define CCxxx0_TXFIFO       0x3F
#define CCxxx0_RXFIFO       0x3F
这三个寄存器我数据手册上没看到过,是不是自己设的啊!

27,377

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧