完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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!=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 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 return status; } SPI通信不是写一个数据,然后要读出一个数据吗??这样写,为何前面的4个0X5A不会丢掉呢??能连续写入5个?然后他用pBuf[u8_ctr]=SPI2_ReadWriteByte(0XFF);读出存进去的数据,这个数据5次出来为何都是0X5A? 当然肯定是在第一个问题的基础上才有第二个问题,那么如果能连续不丢失的写入,那么根据读一个数据,出来一个数据,怎么保证这个地址已经存满了,然后输入0XFF一个个把数据移位出来 |
|
相关推荐
10个回答
|
|
SPI把数据写到NRF2401的寄存器里,会保存下来。读出来的时候跟你写进去当然是一样的。
|
|
|
|
用SPI通信的话,不是写一个数据就要读一个数据出来吗?如果这样的话,写了一个0X5A,再写第二个0X5A不是把第一个0X5A给挤掉了吗?
|
|
|
|
你去看看NRF2401的资料文档吧
|
|
|
|
楼主我最近也在用调nrf24l01,这个函数我读出来的5个值都是0x00(我只调了发送模块,没有接收模块应该不影响吧),不知道什么原因导致的,寄存器地址也没什么问题,使用在线调试也没有解决这个问题,不知道楼主知不知道这有可能是什么原因导致的?
|
|
|
|
我没有遇到这个问题啊,我的读写是一样的
|
|
|
|
嗯,我的问题现在已经解决了
|
|
|
|
怎么解决的?
|
|
|
|
楼主 在不在,有问题问你
|
|
|
|
什么事
|
|
|
|
怎么解决的?
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2345 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2105 浏览 5 评论
2805 浏览 3 评论
2553 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2502 浏览 4 评论
557浏览 0评论
578浏览 0评论
336浏览 0评论
162浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-5-13 20:56 , Processed in 1.320343 second(s), Total 96, Slave 80 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号