没什么特别的含义,只是写了一个nrf2401+芯片功能验证的测试代码,丢到这里供感兴趣的人查看。
代码拉下来可以直接放arduino里运行验证。
想自己验证的先看下面的实验条件。
许久之前在“arduino”中文社区发了一个nrf24l01入门相关的帖子,后来又网友对其中一个知识点提出质疑,原始回复链接:
https://www.arduino.cn/forum.php?mod=redirect&goto=findpost&ptid=86275&pid=555251
这个"PRX ACK payload和130uS关系"的知识点实在太偏僻,而且官方文档语焉不详,相当于彩蛋。
是我自己对文档理解加实验得出的结论,写出来之后当时也没觉得有人会感兴趣。
当时帖子打算就此弃坑(实在太忙^_^)了,不曾想几个月之后,还真有人对这内容感兴趣,见上面链接中的网友。
再后来两个多月后无意中登陆了一次社区账号,才发现了这条回复。
看得出这个回复比较用心,但很遗憾,得出的结论是错误的。
用心且错误的结论其误导性是最大的,为了避免后续看帖的人对帖子内容正确性的怀疑,也为了纠正这个网友,我把我的测试代码整理成了这个项目。
arduino uno/nano X 2
nrf24l01+模块 X 2
接线图(PTX/PRX均适用):
实测发现,2Mbps下,PRX在RX转TX的间隔(130uS)期间,如果想ACK立即生效,那么能处理的字符串最长不能超过16-18字节,距离理论上限有一定差距。
总结一下大概的原因(定性分析,未严格论证):
一是因为操作接口时序上没专门优化(每次SPI读写至少delay 2uS)
二是nrf24的SPI时钟速度没有用满(最高10M,实际用的8M)
三是MEGA328P性能不高(16M主频的8位机,要什么自行车)
几位爷,都看到这儿了,给个star呗!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。