谢谢楼上两位作答,对FIFO的工作原理也大致清楚,下面有段关于CC1100 FIFO的写操作,看得不明白,程序是把数据先填入FIFO,再开始发送,如果发送超过100个bytes,那么当FIFO达到64 bytes被填满时,剩下的36 bytes是不是被抛弃了?<br />我的方法是,要发送100 bytes,首先设置GDO引脚中断信号(当FIFO溢出时有警告),接着MCU向FIFO发送数据,当检测到溢出信号时,将CC1100设置为发射模式,当发送完FIFO的数据时在清理FIFO,然后再把剩下36 bytes发送出去,请问我的方法正确吗?<br /><br /><font color=#0040FF>void halRfSendPacket(INT8U *txBuffer, INT8U size) <br />{ <br /> <br /> halSpiWriteReg(CCxxx0_TXFIFO, size+2);<br /> halSpiWriteReg(CCxxx0_TXFIFO, ID_Opponent);<br /> halSpiWriteReg(CCxxx0_TXFIFO, ID_Oneself);<br /><br /> halSpiWriteBurstReg(CCxxx0_TXFIFO, txBuffer, size); //写入要发送的数据<br /> <br /> <br /> halSpiStrobe(CCxxx0_STX); //进入发送模式发送数据<br /> <br /> // Wait for GDO0 to be set - > sync transmitted<br /> while (!GDO0);<br /> <br /> // Wait for GDO0 to be set - > sync transmitted <br /> while (GDO0);<br /> <br /> halSpiStrobe(CCxxx0_SFTX); //清洗发送缓冲区<br /> <br />}<br /></font><br />
|