我测试simplicity,接收端总是会判断溢出,为什么?
硬件平台,SmartRF05 EB+CC1110EM 2.0
软件环境:CC1110 Simple_Peer_To_Peer 例程
已经移植可以运行,但是接收端能够接收到整个数据包,但是总是进入overflow状态。描述如下:
发送端跟踪发现发送数据包为
接收端跟踪能够接收到数据包为
可以看到接收端也能接收到数据包,但是在mrfi_radio.c的927行的接收中断函数中,总是判断overflow,结果,接收到的数据就被丢弃掉,上层也就一直无法建立连接。
/* Check for overflow */
if ((RFIF & IRQ_DONE) && (RFIF & IRQ_RXOVFL))
{
RFIF = ~IRQ_DONE;
RFIF = ~IRQ_RXOVFL;
S1CON = 0; /* Clear MCU interrupt flag */
/* Only way out of this is to go to IDLE state */
Mrfi_RxModeOff();
/* zero-out MRFI buffer to help NWK eliminate undetected rogue frames if they pass here */
memset(mrfiIncomingPacket.frame, 0x00, sizeof(mrfiIncomingPacket.frame));
/* OK to start again... */
Mrfi_RxModeOn();
__bsp_RESTORE_ISTATE__(istate);
return;
}
怎么没有TI的技术支持出来解答一下呢? 自己顶一下
sample code支持SmartRF04EB+CC1110EM
SmartRF05EB搭配CC1110EM没有sample code,硬件连接是否一样呢?通过寄存器去看是否确实是overflow,发送端只发一条数据,overflow以后有没有对应的标志位清除掉!