Alvin007 发表于 2012-1-7 11:23:13

请教24L01+,接收模式在没开动态ack payload的情况下会收到ack payload中断

发生情况:
主机与从机随机发送
当出现碰撞的时候主机继续发送,从机切成接收

问题出在,只要从机切成接收后
主机一旦有数据发送过来,从机的STATUS寄存器值为0x60
即RX_DR中断和TX_DS中断同时产生

官方例程中说明0x60中断是表示接收到ACK Payload

不知道为什么

Alvin007 发表于 2012-1-7 11:24:53

贴上初始化程序

nRF24L01_CE_LOW();
nRF24L01_WriteRegByte(nRF24L01_ConfigReg , 0x08);
nRF24L01_WriteRegByte(nRF24L01_EnAutoAnswerReg , 0x3f);
nRF24L01_WriteRegByte(nRF24L01_EnRxAddrReg, 0x3f);
nRF24L01_WriteRegByte(nRF24L01_SetAddrWidthReg, 0x03);
nRF24L01_WriteRegByte(nRF24L01_SetReTranReg, 0x5f);
nRF24L01_WriteRegByte(nRF24L01_RfChReg, 0x05);
nRF24L01_WriteRegByte(nRF24L01_RfSetUpReg, 0x26);
nRF24L01_WriteRegByte(nRF24L01_StatusReg   , 0x70);
nRF24L01_WriteReg(nRF24L01_RX_ADDR_P0,5,address);
nRF24L01_WriteReg(nRF24L01_TX_ADDR,5,address);
nRF24L01_WriteRegByte(nRF24L01_RX_PW_P0, 32);

nRF24L01_WriteRegByte(nRF24L01_ConfigReg , 0x0A | mode );
nRF24L01_WriteRegByte(nRF24L01_StatusReg,0x70);
EXTI_ClearITPendingBit(EXTI_Line15);
nRF24L01_FlushRx();//清接收缓存
nRF24L01_CE_HIGH();
页: [1]
查看完整版本: 请教24L01+,接收模式在没开动态ack payload的情况下会收到ack payload中断