完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
手里有几片NRF2401(片子是正常的),按照原子个例程编写了底层驱动,在配置好SPI,和相关引脚之后,写入发送地址数据,然后再都出了来检验模块是不是正常,之前结果正常,可是后面再写入接收地址和发送地址时(地址数据没有问题,也正常发送了),可是在读出来时依然是之前检查时候的值,将初始化配置也和硬件检测放在一起,结果发现连检测时,写入的数据都读不出来,附上代码,请各位大侠帮帮忙,也就是这种时候特别感到无助,感觉要是有个老师就好了 。
u8 NRF24L01_Check(void) { u8 buf[TX_ADR_WIDTH]={0x88,0x88,0x88,0x88,0x88}; u8 i; SetSpeed(SPI_BaudRatePrescaler_256); NRF24L01_Write_Buf(W_REGISTER+TX_ADDR,buf,TX_ADR_WIDTH);//设置本地通道0要接收的地址 buf[0]=0x01;buf[4]=0xff; NRF24L01_Read_Buf(R_REGISTER+TX_ADDR,buf,TX_ADR_WIDTH); for(i=0;i { if(buf!=0x88)break;//读取数据检验,结果第一个数据就过不了 } if(i!=TX_ADR_WIDTH) printf("未检测到无线模块!rn"); else { NRF24L01_REG(W_REGISTER+CONFIG,0x00);//主发送,收发完成中断,16CRC NRF24L01_Write_Buf(W_REGISTER+RX_ADDR_P0,RX_ADDRESS,RX_ADR_WIDTH);//设置本地通道0要接收的地址 NRF24L01_Write_Buf(W_REGISTER+TX_ADDR,(u8 *)TX_ADDRESS,TX_ADR_WIDTH);//设置发送时的本地地址 NRF24L01_REG(W_REGISTER+EN_AA,0x00);//自动应答关闭 NRF24L01_REG(W_REGISTER+EN_RXADDR,0x00);//设置默认通道 NRF24L01_REG(W_REGISTER+SETUP_AW,RX_ADR_WIDTH);//设置接收地址长度 NRF24L01_REG(W_REGISTER+SETUP_RETR,0x00);//自动重发关闭 NRF24L01_REG(W_REGISTER+RF_CH,0x00);//2.4GHz NRF24L01_REG(W_REGISTER+RF_SETUP,0x0f);//2MHZ传输, 0dB发射 NRF24L01_REG(W_REGISTER+RX_PW_P0,RX_PLOAD_WIDTH);//设置通道接收的数据长度 NRF24L01_REG(W_REGISTER+CONFIG,0x0E);//主发送,收发完成中断,16CRC delay_ms(2); printf("无线模块已初始化!rn"); NRF24L01_Read_Buf(TX_ADDR,buf,TX_ADR_WIDTH); for(i=0;i { printf("%02x ",buf); } printf("rn"); } return 0; } |
|
相关推荐
1个回答
|
|
帮顶!!!!
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2571 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2366 浏览 5 评论
3212 浏览 3 评论
2839 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2791 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
669浏览 1评论
906浏览 0评论
1027浏览 0评论
672浏览 0评论
500浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 07:06 , Processed in 1.036563 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号