我是用DSP28335写的发送端,用stm32写的接收端,当然用DSP写接收端也没调出来。这个和单片机类型无关吧。发送端status可以使0x2e,这样就说明发送端没有问题吧。接收端咋就接收不到呢????求解.。关键是没有调试思路啊,配置也就是配置成rx_mode();没了,rx_mode();是用的例程。。都是这样写的void RX_Mode(void){ NRF24L01_CE=0; NRF24L01_Write_Buf(WRITE_REG+RX_ADDR_P0,(u8*)RX_ADDRESS,RX_ADR_WIDTH);//写RX节点地址// NRF24L01_Write_Buf(WRITE_REG+TX_ADDR,(u8*)TX_ADDRESS,TX_ADR_WIDTH);//写TX节点地址 NRF24L01_Write_Reg(WRITE_REG+EN_AA,0x00); //使能通道0的自动应答 NRF24L01_Write_Reg(WRITE_REG+EN_RXADDR,0x01);//使能通道0的接收地址 NRF24L01_Write_Reg(WRITE_REG+RF_CH,40); //设置RF通信频率 NRF24L01_Write_Reg(WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度 NRF24L01_Write_Reg(WRITE_REG+RF_SETUP,0x0a);//设置TX发射参数,0db增益,2Mbps,低噪声增益开启 NRF24L01_Write_Reg(WRITE_REG+CONFIG, 0x0f);//配置基本工作模式的参数;PWR_UP,EN_CRC,16BIT_CRC,接收模式 NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除RX FIFO寄存器 NRF24L01_CE = 1; //CE为高,进入接收模式} u8 NRF24L01_RxPacket(u8 *rxbuf){ u8 sta,VAL; // SPIx_SetSpeed(SPI_SPEED_8); //spi速度为9Mhz(24L01的最大SPI时钟为10Mhz) sta=NRF24L01_Read_Reg(STATUS); //读取状态寄存器的值 NRF24L01_Write_Reg(WRITE_REG+STATUS,sta); //清除TX_DS或MAX_RT中断标志 //sta=RX_OK; if(sta&RX_OK)//接收到数据 { VAL=NRF24L01_Read_Reg(0X60); NRF24L01_Read_Buf(RD_RX_PLOAD,rxbuf,RX_PLOAD_WIDTH);//读取数据 NRF24L01_Write_Reg(FLUSH_RX,0xff);//清除RX FIFO寄存器 return 0; } |