CC1101接收问题?
时间:12-23
整理:3721RD
点击:
CC1101的配置如附图所示,现在有两点问题:
1、用轮询接收的方式,一块发送一块接收,发送频率每秒大概两次,多了会影响包的正确率或者收不到。
2、用中断的方式,在单步调试模式下每次收到数据都会有中断产生,但如果全速运行则只能触发一次中断。
请问有什么好的解决方法吗?
GDO2输出中断信号正确吗?
看你配置用GDO2 CRC 接收校验正确才触发中断,你把IOCFG2改为0x06看看,用接收到同步字就触发方式
谢谢。
原因找到了,确实是要配置成0X06效果会好。另外就是按照我的配置(CC1101_MDMCFG4和CC1101_MDMCFG3)空中速率很低,才2kbps左右,这是影响发送速度的主要原因,按照这个配置发送时间大概是200ms,也就是这段代码执行时间:
while( GPIOPinRead( PORT_CC_GDO0, PIN_CC_GDO0 ) != 0 );
while( GPIOPinRead( PORT_CC_GDO0, PIN_CC_GDO0 ) == 0 );
如果把这两个配置注释掉选用默认的,速率是115kbps左右,这样发送时间就10ms不到了,速率大大提高。
另外尽量用中断方式接收,因为轮询需要用SPI读取CC1101的寄存器,过于频繁读取效果不好。
那如果GDO0(发送指示引脚)和GDO2(接收指示引脚)都配制成0x06的话发送和接收会互相干扰呢,这样在发送的时候GDO2也会产生中断啊?