初级会员
- 积分
- 162
- 金钱
- 162
- 注册时间
- 2017-3-7
- 在线时间
- 25 小时
|
10金钱
接收方我用的是战舰版,发送方用的是STM32F103C8T6,基本上已经实现了可以发可以接收。
问题:
在接收方可以接收到正确的数据,但是发送方却一直提示是到达了最大重发次数,为什么会这样?
我发现论坛上有很多人都遇到这样的问题,但是没有一个比较满意的答案。
另外:我把发送模式的初始化程序改了一些(中间那几句设置都注释掉了),但是结果还是一样的
void NRF24L01_TX_Mode(void)
{
NRF24L01_CE=0;
NRF24L01_Write_Buf(WRITE_REG_NRF+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);
NRF24L01_Write_Buf(WRITE_REG_NRF+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);
// NRF24L01_Write_Reg(WRITE_REG_NRF+EN_AA,0x01);
// NRF24L01_Write_Reg(WRITE_REG_NRF+EN_RXADDR,0x01);
// NRF24L01_Write_Reg(WRITE_REG_NRF+SETUP_RETR,0x1a);
// NRF24L01_Write_Reg(WRITE_REG_NRF+RF_CH,40);
// NRF24L01_Write_Reg(WRITE_REG_NRF+RF_SETUP,0x0f);
// NRF24L01_Write_Reg(WRITE_REG_NRF+CONFIG,0x0e);
NRF24L01_CE=1;
}
主函数的判断发送程序也改了一些
if(NRF24L01_TxPacket(tmp_buf) == TX_OK)
{
LED0=0;
}
else if(NRF24L01_TxPacket(tmp_buf) == MAX_TX)
{
LED0=0;delay_ms(1000);LED0=1;delay_ms(1000);
}
else if(NRF24L01_TxPacket(tmp_buf) == 0xff)
{
LED0=0;delay_ms(100);LED0=1;delay_ms(3000);
}
根本不知道哪里出了问题,请教些各位大神
|
|