谢谢原子哥,已经解决了,其实是读寄存器函数写错了,我一开始写的是
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);这样?
谢谢原子哥,已经解决了,其实是读寄存器函数写错了,我一开始写的是
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);这样?
举报