初级会员
- 积分
- 65
- 金钱
- 65
- 注册时间
- 2016-10-13
- 在线时间
- 16 小时
|
1金钱
u8 NRF24L01_Check(void)
{
u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5};
u8 i;
SPI2_SetSpeed(SPI_SPEED_4);
NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5);
NRF24L01_Read_Buf(TX_ADDR,buf,5);
for(i=0;i<5;i++)if(buf[i]!=0XA5)break;
if(i!=5)return 1;
return 0;
}
u8 NRF24L01_Write_Buf(u8 reg, u8 *pBuf, u8 len)
{
u8 status,u8_ctr;
NRF24L01_CSN = 0;
status = SPI2_ReadWriteByte(reg);
for(u8_ctr=0; u8_ctr<len; u8_ctr++)SPI2_ReadWriteByte(*pBuf++);
NRF24L01_CSN = 1;
return status;
}
u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len)
{
u8 status,u8_ctr;
NRF24L01_CSN = 0;
status=SPI2_ReadWriteByte(reg);
for(u8_ctr=0;u8_ctr<len;u8_ctr++)pBuf[u8_ctr]=SPI2_ReadWriteByte(0XFF);
NRF24L01_CSN=1;
return status;
}
SPI通信不是写一个数据,然后要读出一个数据吗??这样写,为何前面的4个0X5A不会丢掉呢??能连续写入5个?然后他用pBuf[u8_ctr]=SPI2_ReadWriteByte(0XFF);读出存进去的数据,这个数据5次出来为何都是0X5A? 当然肯定是在第一个问题的基础上才有第二个问题,那么如果能连续不丢失的写入,那么根据读一个数据,出来一个数据,怎么保证这个地址已经存满了,然后输入0XFF一个个把数据移位出来
|
|