发 帖  
原厂入驻New
[问答] 怎么检查NRF24L01无线模块是否损坏
18 nRF24L01 无线模块
分享
除了使用函数NRF24l01_Check()外,是否有其他方法可以确认NRF24L01是否损坏呢?<br />
我手里有3个无线模块,检测结果竟然都是连接失败,实在不敢相信是三个模块都坏了,请问一下下面程序中难道有处理错误的地方么?<br />
下面是检测连接是否成功的程序:<br />
<div   style="background-color:#E8E8E8;">
[C] 纯文本查看 复制代码
u8 NRF24L01_Check(void){u8 buf[5]={0xA5,0xA5,0xA5,0xA5,0xA5};u8 i; SPI2_SetSpeed(SPI_BaudRatePrescaler_4);  NRF24L01_Write_Buf(WRITE_REG_NRF+TX_ADDR ,buf,5);NRF24L01_Read_Buf(TX_ADDR,buf,5);  for(i=0;i<5;i++){IF(buf!=0xA5)break;}if(i!=5)return 1;//失败else return 0; //成功}
</div>
下面是在主函数中进行判断:<br />
<div   style="background-color:#E8E8E8;">
[C] 纯文本查看 复制代码
while(NRF24L01_Check()){LED1_ADD=0; Delay_1us(5000);LED1_ADD=1;Delay_1us(5000);}
</div>
如果连接成功的话,LED灯应该是不亮的,但是三个无线模块在烧录程序后LED都不挺闪烁<br />
单步运行发现,程序在for循环中只循环了一次就跳出循环了,即i=0,导致返回值一直都是1<br />
<div   style="background-color:#E8E8E8;">
[C] 纯文本查看 复制代码
for(i=0;i<5;i++){if(buf!=0xA5)break;}
</div>
请问到底是程序出错了么?其他部分的程序都是从NRF24L01的例程里面直接copy的<br />
又或者是我的NRF坏了?除了这种运行程序的方法外,有什么其他办法确定是否模块坏了么?<br />
谢谢!
0
5 天前   评论 分享淘帖 邀请回答
1个回答
<br>好吧,看来只好买新的了,谢谢原子大~

只有小组成员才能发言,加入小组>>

92个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表