最近在用cc1101做无线传输,可是如果使用轮询法接收,都挺正常的。但是使用外部中断,GPO0来进行触发接收的话,把halRFReceivePacket函数放到终端中,就会死机,死在“while(MISO);”上面。不知道这是为什么。查看cc1101手册上说 CSN拉低MISO会立即被拉低,除非CC1101进入SLEEP或者OXFF状态,可是我发送方每次只发送5字节数据。数据量很小了,不知道为什么会死机,让我很困扰,一直在调试。不知道有没有前辈能指教下,万分感谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我也不是很懂,大概就知道些,对不对你再看看手册吧。
我的接收函数就是
CC1101SetTRMode( RX_MODE );
while(GDO0);
while(!GDO0);
等这段程序执行完成后,FIFO里面就是接收到的数据了,你再用MCU通过SPI读出数据就行了。
你说的不错 我知道你说的这个 之所以出现你说的while(GDO0) 死在这里是 是因为使用的是查询法的原因。而我现在用的是 中断模式 根据GDO0的上升下降沿进入中断再 处理数据 不会出现你说的这个问题。之所以死在while(MISO)我翻阅了很多资料,看到一句话是 是等待电压调整稳定并且晶振运行才会在csn拉低的情况下,MISO拉低,所以有可能是晶振不同步导致的,但是不知道具体原因,这个要做成功的前辈们来解答了···
一周热门 更多>