佚名通过本文主要向大家介绍了cc1101,cc1101中文手册,cc1101无线模块,cc1101程序,cc1101中文资料等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: CC1101能不能检测周围同频率信号强度?
描述:
另外我其实是想做到用CC1101来检测周围同频率的电磁波信号强度,但目前查到好像说其实只能在建立通信的时候,通过数据包附加字节的形式获取信号强度值,是这么一回事吗?究竟这个RSSI到底在哪里获取呢?在建立通信的条件下我读0x34寄存器只能获得64这个值。
我参考的是http://rf.eefocus.com/module/forum/thread-591826-1-1.html
我的问题与之相似http://rf.eefocus.com/module/forum/forum.php?mod=viewthread&tid=591820&page=1#pid1996135

这是我串口输出代码。
解决方案1:
描述:
CC1101RSSI信号检测射频
比如我现在两块CC1101,一收一发,按理说可以通过读CC1101的RSSI寄存器获取信号强度指示,不过我现在读到的值不论收发端距离多远,都是64,这是什么原因?另外我其实是想做到用CC1101来检测周围同频率的电磁波信号强度,但目前查到好像说其实只能在建立通信的时候,通过数据包附加字节的形式获取信号强度值,是这么一回事吗?究竟这个RSSI到底在哪里获取呢?在建立通信的条件下我读0x34寄存器只能获得64这个值。
我参考的是http://rf.eefocus.com/module/forum/thread-591826-1-1.html
我的问题与之相似http://rf.eefocus.com/module/forum/forum.php?mod=viewthread&tid=591820&page=1#pid1996135

这是我串口输出代码。
解决方案1:
调用的头函数(*.h)文件看了没??(例如:reg51.h等之类的)里面有对寄存器的定义,从里面看能看到寄存器的地址,比方说51芯片,一般第一个寄存器被定义为P0,但是有些书里面介绍寄存器为R0,这时你就应该看reg51.h,在这个里面你就能看见str P0=0x80,说明有一个寄存器为P0,起止位置为0x80的物理地址开始,如果你按照书上编写程序,从R0编写程序,很可能就编译不成功。从这个程序上看,cc1101这个函数很可能就是调用了一个h文件,从调用情况上猜想,是读取的指针地址,如果指针指向不对,很有可能是指向同一位置,(猜想因为指针以只读方式调用,所以不考虑堆栈数据被改写情况。)仔细检查一下调用方式,是不是指针运算方法错误,(也有可能寄存器未清零。)看看有没有方法增加一个变量,然后让指针址赋给这个变量,通过显示函数显示出来。
解决方案2:CC1101_Read_Reg(0x34);这个函数里面的那个16进制数是指的指针,还是数值??猜想大概是指针,但是在运算过程中很可能是你的编译器认为是指针运算,或者是你的运算目的是指针运算,被编译器认为是指针指向地址内的数据进行运算。