初级会员
- 积分
- 101
- 金钱
- 101
- 注册时间
- 2018-1-16
- 在线时间
- 74 小时
|
10金钱
串口输出的数据一直是0XFF(波特率设置好了),确定是 NRF24L01_Read_Buf(TX_ADDR,buf,5) 函数这里有问题了,但是不知道错在了哪里。
u8 NRF24L01_Check(void)
{
u8 buf[5]={0xA0,0xA0,0xA0,0xA0,0xA0};
u8 i;
SPI2_SetSpeed(SPI_BaudRatePrescaler_16); //
NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,buf,5);//
NRF24L01_Read_Buf(TX_ADDR,buf,5); //别的函数下输出的都是A0,这个函数之后输出的是FF
printf("%d%d%d%d%d\n",buf[0],buf[1],buf[2],buf[3],buf[4]);
for(i=0;i<5;i++)
{
if(buf!=0xA0)break;
}
if(i!=5)return 1;//
return 0; //
}
=====================
NRF24L01_Read_Buf函数
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; //
}
|
|