anrangu 发表于 2011-12-17 12:44:37

nrf24l01开启自动应答后接收不到数据。。。。

我调试时先关闭了发射端和接收端的自动应答,其配置如下:
发射端:SPI_RW_Reg(WRITE_REG + EN_AA, 0x00);         //失能通道0自动应答
      SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x00);       //失能接收通道0
      SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x00);      //失能自动重发

接收端:SPI_RW_Reg(WRITE_REG + EN_AA, 0x00);         //失能通道0自动应答
      SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);       //接收要使能接收通道0

在这种情况下,经测试发射端能正常发送数据,接收端也能收到数据。可是一开启自动应答,配置改为:
发射端:SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);         //使能接收通道0自动应答
      SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);       //使能接收通道0      
      SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a);      //自动重发10次,间隔500us

接收端:SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);         //失能通道0自动应答
      SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);       //接收要使能接收通道0

此时接收端就无法接收数据了,调试时接收端STATUS寄存器的值一直为0x0E。

不知道问题究竟出在何处,请大侠指教。。。。。

anrangu 发表于 2011-12-25 16:34:02

回复【1楼】maomao0258 莫远茂
-----------------------------------------------------------------------

是我发送和接收后没写STATUS寄存器为0xff,清除FIFO
页: [1]
查看完整版本: nrf24l01开启自动应答后接收不到数据。。。。