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。
不知道问题究竟出在何处,请大侠指教。。。。。 回复【1楼】maomao0258 莫远茂
-----------------------------------------------------------------------
是我发送和接收后没写STATUS寄存器为0xff,清除FIFO
页:
[1]