OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » 现在用nrf24l01做一个跳动中继节点。收到的数据不能转发给主控台

共4条 1/1 1 跳转至

现在用nrf24l01做一个跳动中继节点。收到的数据不能转发给主控台

助工
2015-08-07 10:33:24    评分

现在用nrf24l01做一个跳动中继节点。收到的数据不能转发给主控台,请问什么原因


就是将a节点的温度传给b·b再传给c,用的是nrf24l01


助工
2015-08-07 10:36:36    评分
2楼
模块之间有干扰吧?

院士
2015-08-07 10:39:53    评分
3楼
#include"Allhead.h"
sbit CE=P1^2;  //RX/TX模式选择端
sbit IRQ=P1^3; //可屏蔽中断端
sbit CSN=P1^4; //SPI片选端//就是SS
sbit MOSI=P1^5;	//SPI主机输出从机输入端
sbit MISO=P1^6;	//SPI主机输出从机输出端
sbit SCLK=P1^7;	//SPI时钟端
unchar RevTempDate[5];//最后一位用来存放结束标志
unchar code TxAddr[]={0x40,0x43,0x10,0x10,0x01};//发送地址
unchar code RxAddr1[]={0x36};//编号2
/*****************状态标志*****************************************/
unchar  bdata sta;   //状态标志
sbit RX_DR=sta^6;
sbit TX_DS=sta^5;
sbit MAX_RT=sta^4;
/*****************SPI时序函数******************************************/
unchar NRFSPI(unchar date)
{
    unchar i;
   	for(i=0;i<8;i++)          // 循环8次
   	{
	  if(date&0x80)
	    MOSI=1;
************************************/
#include"reg52.h"
#include"Allhead.h"
/************************主函数********************/
void main()
{
  //LCD1602Int();
   *(RevTempDate+4)='\0';
   LcdInt(); //12864液晶初始化
   LcdClear(); //12864液晶清屏 
   Max232Int();//串口初始化
   NRF24L01Int();
   LcdWriteChStr(2,10,"当前温度:");
   while(1)
    {
		NRFSetRXMode();//设置为接收模式
		GetDate();//开始接受数
                LCDDelay(1000); 
               NRFSetTxMode(sta);发送模式
               CheckACK();
              LCDDelay(1000);
	}

 


专家
2015-08-07 10:52:48    评分
4楼
能单步调试吗?不能的话打印出第一次获得和第二次获得的数据,

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]