完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
由于采用NRF24L01+无线模块做无线语音广播,所以设置成“不自动应答”,现在发现广播时,接收端只能收到40%左右的数据帧,请指教。
【附上部分代码】 ----------------- 发送端:----------------- void NRF24L01_Set_TxMode(unsigned char *TxAddress) { ClrCE; //设置发送地址和地址长度 NRF24L01_Write_TxData(W_REGISTER+TX_ADDR,TxAddress,TX_ADDR_WITDH); /******下面有关寄存器配置**************/ NRF24L01_Write_Reg(W_REGISTER+EN_AA,0x00); /* 使能接收通道P0 不 自动应答 */ NRF24L01_Write_Reg(W_REGISTER+EN_RXADDR,0x01); /* 使能接收通道P0 */ NRF24L01_Write_Reg(W_REGISTER+SETUP_RETR,0x0a); /* 自动重发延时等待250us+86us,自动重发10次 */ NRF24L01_Write_Reg(W_REGISTER+RF_CH,0x40); /* 选择射频通道0x40 */ NRF24L01_Write_Reg(W_REGISTER+RF_SETUP,0x0F); /* 数据传输率2Mbps,发射功率0dBm,低噪声放大器增益 */ NRF24L01_Write_Reg(W_REGISTER+CONFIG,0x0e); /* CRC使能,16位CRC校验,上电 */ SetCE; delay_us(12); // 按照芯片手册要求 保持10us秒以上 } ----------------- 接收端:----------------- void NRF24L01_Set_RxMode_MultiChannel() { ClrCE; NRF24L01_Write_TxData(W_REGISTER+RX_ADDR_P0, RxAddr0, TX_ADDR_WITDH); /* 接收设备接收通道0使用和发送设备相同的发送地址 */ NRF24L01_Write_TxData(W_REGISTER+RX_ADDR_P1, RxAddr1, TX_ADDR_WITDH); /* 接收设备接收通道1使用和发送设备相同的发送地址 */ NRF24L01_Write_Reg(W_REGISTER+RX_ADDR_P2,0x02); NRF24L01_Write_Reg(W_REGISTER+RX_ADDR_P3,0x03); NRF24L01_Write_Reg(W_REGISTER+RX_ADDR_P4,0x04); NRF24L01_Write_Reg(W_REGISTER+RX_ADDR_P5,0x05); NRF24L01_Write_Reg(W_REGISTER+EN_AA,0x00); /* 使能数据通道0~5 不 自动应答 */ NRF24L01_Write_Reg(W_REGISTER+EN_RXADDR,0x3F); /* 使能接收通道0~5 */ NRF24L01_Write_Reg(W_REGISTER+RX_PW_P0, TX_DATA_WITDH); /* 接收通道0选择和发送通道相同有效数据宽度 */ NRF24L01_Write_Reg(W_REGISTER+RX_PW_P1, TX_DATA_WITDH); /* 接收通道1选择和发送通道相同有效数据宽度 */ NRF24L01_Write_Reg(W_REGISTER+RX_PW_P2, TX_DATA_WITDH); /* 接收通道2选择和发送通道相同有效数据宽度 */ NRF24L01_Write_Reg(W_REGISTER+RX_PW_P3, TX_DATA_WITDH); /* 接收通道3选择和发送通道相同有效数据宽度 */ NRF24L01_Write_Reg(W_REGISTER+RX_PW_P4, TX_DATA_WITDH); /* 接收通道4选择和发送通道相同有效数据宽度 */ NRF24L01_Write_Reg(W_REGISTER+RX_PW_P5, TX_DATA_WITDH); /* 接收通道5选择和发送通道相同有效数据宽度 */ NRF24L01_Write_Reg(W_REGISTER+RF_CH,0x40); /* 选择射频通道0x40 */ NRF24L01_Write_Reg(W_REGISTER+RF_SETUP,0x0F); /* 数据传输率2Mbps,发射功率0dBm,低噪声放大器增益 */ NRF24L01_Write_Reg(W_REGISTER+CONFIG,0x0f); /* CRC使能,16位CRC校验,上电,接收模式 */ SetCE; delay_us(12); /* 按照芯片手册要求 保持10us秒以上 */ } |
|
相关推荐
1个回答
|
|
|
|
|
只有小组成员才能发言,加入小组>>
948 浏览 0 评论
如何使用STM32+nrf24l01架构把有线USB设备无线化?
3103 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
3006 浏览 5 评论
3867 浏览 3 评论
3323 浏览 8 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
1284浏览 1评论
1227浏览 0评论
916浏览 0评论
985浏览 0评论
948浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-10 23:20 , Processed in 0.930839 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4268