天线|RF射频
直播中

潘凌

7年用户 174经验值
私信 关注
[问答]

一块mini板驱动2个NRF24L01+的方法?

其中一个NRF24L01+安装在预定位置,另一个用杜邦下连接到板上的空闲引脚:

连接方式如下:

pc0: CE1, pc2: CSN1, pc3: IRQ1;SCK、MISO、MOSI与第一个NRF24L01+共用。



在NRF的初始化代码里面添加如下代码:

GPIOC->CRL&=0XFFFF00F0; // pc0: CE1, pc2: CSN1, pc3: IRQ1

GPIOC->CRL|=0X00008303;

GPIOC->ODR|=13;

根据板子提供的代码做一定的修改,主循环代码如下:

nRF24L01_init();

while(1)

{

         if(nRF24L01_check()) sys.puts("nRF24L01+ 0 dected.");

         if(nRF24L01_1_check()) sys.puts("nRF24L01+ 1 dected.");


         nRF24L01_TX_Mode();

         nRF24L01_1_RX_Mode();

         if(nRF24L01_TxPacket("hello, world.")==0xff) sys.puts("tx err.");

         for(i=100000; i; i--)

         {

                if(nRF24L01_1_RxPacket(buf)==0) break;

          }

          if(i)

          {

               sys.puts(buf);

          }

          else

          {

                sys.puts("rx err.");

           }

          hw_delay_ms(1000);

}



效果如下图,可以看到,LCD显示的就是NRF 0 发送给 NRF 1的数据。









   



回帖(5)

张锐

2020-4-28 09:08:36
直接上传工程吧,呵呵。
举报

洪欣意

2020-4-28 09:40:32

NRF程序是用板子提供的程序改的,SPI口都是共用的,只是增加了另外的: CE、CSN和IRQ引脚用以控制第二个NRF模块,自己改起来应该挺容易的。

这几个引脚与板子上的触摸屏spi接口共用,理论上是可以复用的。程序只是简单的收发,这个貌似没有什么好说的。



由于我的底层函数几乎重写过了,这个可能也不太适合其他人。等我把NRF摸清了整理清楚了再说吧。
举报

史岩超

2020-4-28 09:54:49

期待
举报

张帆

2020-4-28 10:08:38
期待楼主的工程
举报

更多回帖

发帖
×
20
完善资料,
赚取积分