• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > CC1101接收部分求助

CC1101接收部分求助

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了cc1101中断接收,cc1101接收程序,cc1101,cc1101中文手册,cc1101无线模块等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: CC1101接收部分求助
描述:

本帖最后由 libin55 于 2014-10-23 20:36:47 编辑

CC1101433M无线单片机C语言

最近在学习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了,不知道有没有更好的方法!


解决方案1:

延时可以定义一个变量如 i  
用while (i--){};


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • CC1101接收部分求助

相关文章

  • 2017-06-05 神龙卡驱动如何安装?
  • 2017-06-05 脉冲分路输出设计
  • 2017-06-05 Lua中如何获取中文字符串的长度?
  • 2017-06-05 请教SPI接口W5100网络接口芯片写寄存器问题
  • 2017-06-05 wince数据库读写对CAN读写的影响
  • 2017-06-05 怎样用驱动处理光盘弹出的消息?
  • 2017-06-05 在用MDK514版本,工程可以产生HEX文件,怎么产生不了axf文件?没破解成功?
  • 2017-06-05 FPGA板子必须用手按着才能正常工作,求分析原因
  • 2017-06-05 error1275此驱动程序被阻止加载,win764各种方法尝试无效,请求支援!
  • 2017-06-05 请叫高手,如何反编译一个rom程序

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • AM3354系统起不来
    • 点线面之间的位置关系进程与CPU之间的关系?
    • wince对话框问题
    • 谁有EDA_BOMHelper工具
    • 嵌入式系统的定义
    • com口COM口信息读写
    • 单片机与BQ27541通过HDQ通讯,27541没有回应
    • 高手请指点,我想将一个Linux下的打印机驱动程序移植到Windows下怎么做呢???
    • vxworks中oaout文件的差别是什么?
    • wince串口编程编译的问题,刚接触这方面,请大神帮忙解答,特别着急,谢谢

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有