最近在用cc1101做无线传输,可是如果使用轮询法接收,都挺正常的。但是使用外部中断,GPO0来进行触发接收的话,把halRFReceivePacket函数放到终端中,就会死机,死在“while(MISO);”上面。不知道这是为什么。查看cc1101手册上说 CSN拉低MISO会立即被拉低,除非CC1101进入SLEEP或者OXFF状态,可是我发送方每次只发送5字节数据。数据量很小了,不知道为什么会死机,让我很困扰,一直在调试。不知道有没有前辈能指教下,万分感谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
o 我大概明白你的意思了。 MISO口其实就是GDO1口, CSN拉低后,MISO会返回一个低电平,表示1101芯片已经准备好了,可以开始传送数据了。又由于MISO口是SPI的一个端口,所以它还要用来传送数据, 所以当你使用玩了RecPackets函数以后,MISO口的电平状态已经被更改过了,所以while(MISO)才可能会停留。 因为RecPackets函数里面封装了 ReadReg(读取1101寄存器的函数),而ReadReg一般再书写的时候已经进行了while(MISO)或者是while(GDO1)的判断了。
不知道这个解释对不对。
一周热门 更多>