关于CC2500的问题
时间:12-22
整理:3721RD
点击:
CC2500将IOCFG0设置为0x06时,接收到数据可以在GDO0脚检测到一个信号脉冲,在检测到这个脉冲后读取RX FIFO可以得到正确的数据,但是我用的是一款低端的语音单片机,它没有外部中断,而产品功能不允许我一直在等待这个脉冲,因为还有其他事情要做,我有试过不管这个脉冲,每隔一段时间读取一次RX FIFO,但是都没有办法读到正确的发送端发送的数据,是不是CC2500必须在接收到GDO0的脉冲后读取RX FIFO才能读到正确数据?如果不是该怎样才能读到正确的数据?
我的建议是你在读取RXFIFO之前读一下RXBYTES.NUM_RXBYTES, 看一下有没有数据。你还要注意CRC校验是不是正确,确认一下有没有开AutoFlush. 还有就是注意不要溢出。
这样肯定不行的吧···就像前辈说的,会遇到溢出,或者被 Flush 之类的问题
不能中断就用查询 GDO 的办法
我的理解,当检测到声明信号的时候,表明 RF 接收到了对应的前导,信号 Clear 时,表示数据包接收完毕
就是说,在做其它事情的时候,时时检测一下这个 GDO
如果为高则等待 Clear 后,读取数据;如果 GDO 为低,就可以安心做手头事情
不知道这样是否可行,还请路过的前辈指导
对的,你尽量通过判断gdo的状态来确定有没有报文。也可以通过fifo的数量和gdo的状态一块来判断