新手上路
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2013-7-29
- 在线时间
- 1 小时
|
u8 NRF24L01_Check(void)
{
u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5};
u8 i;
SPI1_SetSpeed(SPI_BaudRatePrescaler_8); //spi速度为9Mhz(24L01的最大SPI时钟为10Mhz)
NRF24L01_Write_Buf(WRITE_REG_NRF+TX_ADDR,buf,5);//写入5个字节的地址.
NRF24L01_Read_Buf(TX_ADDR,buf,5); //读出写入的地址
for(i=0;i<5;i++)if(buf!=0XA5)break;
if(i!=5)return 1; //检测24L01错误
return 0; //检测到24L01
}
u8 NRF24L01_Read_Buf(u8 reg,u8 *pBuf,u8 len)
{
u8 status,u8_ctr;
NRF24L01_CSN = 0; //使能SPI传输
status=SPI1_ReadWriteByte(reg); //发送寄存器值(位置),并读取状态值
for(u8_ctr=0;u8_ctr<len;u8_ctr++)
pBuf[u8_ctr]=SPI1_ReadWriteByte(0XFF); //读出数据
NRF24L01_CSN=1; //关闭SPI传输
return status; //返回读到的状态值
}
得到的buf中的数据是5个FF,而不是A5,哪错了
|
|