完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
2个回答
|
|
可以的,你开启好对应的接收通道就可以,地址不能是一样的。
|
|
|
|
大体情况: 目前我开了6路,发射机每隔1s发送一次数据,经过长期几十个小时的测试,数据收发比较稳定。但是不定期时间内,会丢1-2次包,丢包很少,但是存在,在三秒之内所有的发射机必定都会收到正确的数据(通过看闪灯的情况)。 目前在分析丢包的原因: 1.同频干扰排除,之前看到一个网友,调试时频率调到2.5G, 排除wifi干扰。 频率调到2.5G测试过,仍然存在这个问题。 2.电源干扰。使用的电池都比较好的稳定的电池。加在stm32与nrf24l01,还有pa上的都比较稳定。 3.第三点我就想到,开启了ack后,看到英文手册上,接收机接收到数据后,shockburst模式中自动切换到发射模式,发送应答,发完后又切换回来。 会不会存在这样一种情况:就是6路发射机的信号同时到达,接收机接收其中一路,应答一路。其他发射机,则进入自动重发。(这里设置的重发15次)以此这样循环。但是不确定这一点。跳出来想想,芯片设计能1对6,肯定是考虑到这种情况的。 我想问一下大家,有没有遇到的同样的情况的。或是能给我提供一些其他丢包的原因 。^-^谢谢! 下面是发包代码。 void nRF24L01_TxPacket(unsigned char * tx_buf,u8 tx_len, unsigned char pwr) { u8 sta_reg; CE_0; inerDelay_us(10);//StandBy I模式 sta_reg = SPI_Read(STATUS); if(sta_reg & 0x70) SPI_RW_Reg(WRITE_REG+STATUS,sta_reg & 0x70); //清标志 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, tx_len); // 装载数据 SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收发完成中断响应,16位CRC,主发送 CE_1; //置高CE,激发数据发送 inerDelay_us(60); do{ sta_reg = SPI_Read(STATUS); if(sta_reg & 0x20) break; inerDelay_us(5); }while(!(sta_reg & 0x10)); SPI_RW_Reg(FLUSH_TX,0xff);//清空FIFO CE_0;//发送完成后,进入待机模式1 } main.c中: nRF24L01_TxPacket(Tx_DAT,TX_PLOAD_WIDTH_WORK,pwr);// 发送 if (0x20 & SPI_Read(STATUS)) LED_flash(GREEN,1); //闪绿灯,发送成功 else LED_flash(ORANGE,1);//闪橙灯,发送失败 |
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2569 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2365 浏览 5 评论
3210 浏览 3 评论
2837 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2789 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
666浏览 1评论
905浏览 0评论
1026浏览 0评论
671浏览 0评论
499浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 23:53 , Processed in 1.057952 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号