拿到这对小家伙的时候,距离现在已经有好几个月了吧。直到大概一个月前,才将它们从抽屉里拿出来。之所以一直搁置着, 是因为想要靠自己来驱动它们。厌倦了那种拿到模块到处找例程的感觉。不过,这也让人吃尽了苦头。
熬了多少个夜晚,看了多少遍datasheet,甚至因为实在太困难了,所以索性再次搁在一边,拿了个较为简单的1302寻寻feel。这一搁置,又过了一个多星期。大学时间真的太紧张了,各种各样无聊的课占据了平日的大部分时间。周末,才感觉是为自己活着的日子。
第三次——真正的战役,持续时间并不算长,相对于前两次的铺垫来说。熬了一个星期的夜,时间总是在不知不觉之间溜走,往往回过神来才发觉,大家都睡下了,已经三四点了。不过喜欢这宁静的夜,也再一次深深的体会到,走这条路的人是没有夜晚的,因为深夜才是最高效的时间。
不过,这次的收尾工作却是在今天早上进行的。前天晚上进行最终的测试,两台机都装的自己程序,结果接收机反馈回来乱码,经过昨天一整天的排查才知道是连续读数据函数不能表达。修修改改忙了一整晚,到昨晚三四点还是没有突破,索性睡个觉。今早九点,熟睡中一个激灵醒过来,打开电脑再看看,还是不行。失望中倒头呼呼大睡,十一点再次醒来,牙都还没刷,问题就解决了。虽然如此,但是心里还是带着小小的疑问,不明白究竟为什么。
这里实现的功能比较简单:通过PC串口给发送端写入要传送的数据(定长32字节),接收端将收到的数据反馈给PC。由于只有一台电脑,所以只能够同时开两个串口调试窗来观察。不过这里面的收获也挺多的,例如对C的指针有了较为直观、深刻的感受,再如数据交换函数的写法,还有就是包含串口通信在内所有程序都是参考数据手册写的。
关键字:NRF24L01 无线模块 收发经验
引用地址:
一位从厌倦调试NRF24L01无线模块到成功的收发经验分享
推荐阅读最新更新时间:2024-03-16 14:23
基于MSP430F2012和nRF24L01的低功耗RFID设计方案
射频识别(RFID)技术是采用无线射频的方式实现双向数据交换并识别身份,RFID定位正是利用了这一识别特性,利用阅读器和标签之间的通信信号强度等参数进行空间的定位。 RFID标签按供电方式分为有源和无源2种 ,无源标签通过捕获阅读器发射的电磁波获取能量,具有成本低、尺寸小的优势;有源标签通常采用电池供电,具有通信距离远、读取速度快、可靠性好等优点 ,但为了满足煤矿井下定位,需要考虑低功耗设计以增强电池的续航能力。本文从有源标签的设计理念出发,针对小范围空间RFID定位的需求,根据低功耗、高效率的原则进行RFID标签的设计,并阐述了其硬件组成、软件流程和防冲突能力。 2.系统硬件设计 2.1 系统结构 有
[单片机]
初接触nRF2401A/nRF24L01/nRF24L01+无线模块
俗话说:每个人一生下来什么都会的,都是通过自己努力和探索出来的,NRF系列芯片,刚开始都好奇心加兴趣才来捣鼓它的,刚开始做硬件和软件,没有收发数据弄得整个人头都快炸开了,所以在此和大家分享一下前辈的经验,希望大家会少走弯路。 Q:最近在选型的时候发现基本常见的无线模块都是3V供电,而我使用的单片机是5V的,它们之间要怎么连接呢?直接连接会不会损坏模块? 回答: 如果你使用的51单片机的P0口是高阻引脚,可以直接将无线模块的IO脚连接到P0端口,并在对应的连线与3V电源间放置1K~10K左右的偏置电阻即可。 如果单片机没有高阻脚(AVR单片机和一些型号的STC单片机等),不适用于上述的方法。 nRF24L01+可以
[单片机]
NRF24L01调试记 (STM32F4,STM32F1,STM8L)
其实网上NRF24L01的资料很多,例程也很多,本不应该有什么大问题,但是确出了各种奇怪的问题,花了不少时间。 STM32F103+NRF24L01 用最小系统板搭了个平台,加上网上的例程,问题是检查NRF24L01的时候,一直没法找到,读写地址寄存器失败,起初怀疑是引线的问题,自己检查连线以及针脚定义,都没有发现问题,既然针脚没有问题怀疑是SPI通讯的问题,接着检查SPI配置,都没有发现明显的错误,尽管分频到256还是不行,十分不解,检查时序代码,因为是网上现成的代码本来想不应该有问题,但是还真的发现问题了,发现网上时序先是将CSN拉高!发送结束后再拉低!这个明显不符,修改后运行正常,哎,网上人家给的例程未必人家就验证过,切
[单片机]
stm32 驱动2.4g cc2500 无线模块
驱动代码 BYTE spi_writebyte(BYTE value) { BYTE i,T; for(i=8; i; i--) { SPI_CLR_CLK(); SETDATA(value); Delay(3); value =1; SPI_SET_CLK(); T = 1; T |= RF_SPI_MISO; Delay(1); } SPI_CLR_CLK(); return T; } /** *@brief send one byte **/ void SpiStrobe(value) { SPI_SELECT(); spi_writebyte(value); SPI_DIS_SELECT(
[单片机]
单片机编码 无线模块发送与接收 程序
模块型号,可在万能的某宝搜索【超再生无线模块】 接收距离:空旷200米 接收端在没有收到讯号,会生成间歇性尖状脉冲,data接LED负极,5V接LED正极,可看见闪烁 【科普知识】 无线收发,天线计算公式: 电磁波的速度,30W公里每秒,即3X10^8m/s 频率的单位有MHZ,(兆赫兹),KHZ(千赫兹)HZ(赫兹),相互之间关系是1MHZ=1000KHZ=1000000HZ, 波长=速度/频率 前辈们经验告诉我们,1/4波长的天线是较靠谱的 315M的1/4波长天线计算公式,导线传播高频信号的缩短率在0.98 (300000000/315000000)/4*0.98=0.23333(M)=23.3(
[单片机]
STM32--SPI配置nrf24l01调试笔记
TX模式和RX模式 地址配置 //发送/接收地址一 const u8 TX_ADDRESS ={0x34,0x43,0x10,0x10,0x01}; //发送地址 const u8 RX_ADDRESS ={0x34,0x43,0x10,0x10,0x01}; //发送/接收地址二 const u8 TX_ADDRESS1 ={0x35,0x43,0x10,0x10,0x01}; //发送地址 const u8 RX_ADDRESS1 ={0x35,0x43,0x10,0x10,0x01}; 测试一 发送模块,发送模式配置成:发送地址一,接收地址二 void NRF24L01_TX_Mode(void) {
[单片机]