CC1101读RXBYTES不正常?
时间:10-02
整理:3721RD
点击:
CC1101读RXBYTES不正常?
CC1101,GD0设置为0x07,MCU设置成上升沿中断,工作模式设置为接收完数据包后,保持接收模式,中断后判断RXBYTES是否有数据,有就读RX FIFO。
发现问题:只有第一次中断(RXBYTES数据长度是正确的),之后的每一次读RXBYTES都为0。后来我将工作模式设置为接收到一个数据包后,进入IDEL模式,读完RX FIFO后,刷新RX FIFO,然后启动接收模式,就发现每次都正常。
接收代码(只有第一次读(RXBYTES)正常):
void Receive_Packet(void)
{
delay_0_25us(25000); //150us
if ((Read_Status(RXBYTES);& BYTES_IN_RXFIFO)) //如果接的字节数不为0
{
rf_rx_buff.len=Read_Reg(RXFIFO); //读出第一个字节,此字节为该帧数据长度
if(rf_rx_buff.len>0)
Read_BurstReg(RXFIFO, (unsigned char *)rf_rx_buff.data, rf_rx_buff.len); //读出所有接收到的数据
Send_Strobe(SFRX); //清洗接收缓冲区
Send_Strobe(SRX);
}
}
}