天线|RF射频
直播中

刘璐

7年用户 228经验值
私信 关注
[问答]

NRF24l01发送问题如何解决

我关闭了使能接受通道和自动应答通道,读取STATUS 的值为0x2e没问题,读取FIFO_STATUS的值却也为0x2e,本应该为0x11,表示已经tx寄存器清空,求助大神,为何我读取是2e,更奇怪的是我不发送数据也不设置发送模式,然后读取FIFO_STATUS的却为0x0e,而默认情况下应为0x11啊。可我没有改变FIFO_STATUS的值

回帖(2)

李勇进

2020-5-22 16:14:14

谢谢原子哥,已经解决了,其实是读寄存器函数写错了,我一开始写的是

void NRF_ReadReg(u8 reg)

{

    u8 status;

    NRF_CSN_LOW;

    status=SPI_SendByte(reg);

    NRF_CSN_HIGH;

    return status;

}

而正确的应该是这样

void NRF_ReadReg(u8 reg)

{

    u8 status;

    NRF_CSN_LOW;

    SPI_SendByte(reg);

    status=SPI_SendByte(0xff);

    NRF_CSN_HIGH;

    return status

}

原子哥,弱弱的问下为什么读寄存器先发命令再发0xff读出,不可以直接status=SPI_SendByte(reg);这样?
举报

姚庭芳

2020-5-22 16:21:08
帮顶....
举报

更多回帖

发帖
×
20
完善资料,
赚取积分