常驻嘉宾
我也有头衔
- 积分
- 3354
- 威望
- 1835
- 贡献
- 891
- 兑换币
- 713
- 注册时间
- 2013-9-10
- 在线时间
- 314 小时
- 毕业学校
- 浙江大学
|
/*SPI*/
byte SPI_R_byte(byte reg)
{
byte reg_value;
CSN=0;//SPI片选
SPI_RW(reg);//写入地址
reg_value=SPI_RW(0);//读取寄存器的值
CSN=1;
return reg_value;//返回读取的值
}
别的不说 这一段有问题
读取寄存器应该写0xFF :
reg_value=SPI_RW(0xFF); //你回去改一下吧
然后 送你一段检测24L01的函数:
u8 NRF24L01_Check(void)
{
u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5};
u8 i;
SPIx_SetSpeed(SPI_SPEED_8); //spi速度为9Mhz(24L01的最大SPI时钟为10Mhz)
NRF24L01_Write_Buf(WRITE_REG+TX_ADDR,buf,5);//写入5个字节的地址.
NRF24L01_Read_Buf(TX_ADDR,buf,5); //读出写入的地址
for(i=0;i<5;i++)if(buf[i]!=0XA5)break;
if(i!=5)return 1;//检测24L01错误
return 0; //检测到24L01
}
自己改下函数名吧 相信你没问题 |
|