久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3799|回復: 2
打印 上一主題 下一主題
收起左側

51 NRF24L01 收到的數據都是0 大神幫忙看下

[復制鏈接]
跳轉到指定樓層
樓主
ID:129670 發表于 2016-7-16 10:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發送端主函數                                                                                                                                                  

void main(void)
{
nRF24L01_Init();//NRF24L01初始化
while(1)
{
  DhtReadData();   //讀取傳感器的數據  這個函數沒有問題的。
TX_Buffer[0]=Humi;
nRF24L01_Set_TX_Mode(TX_Buffer);//發送數據
while(Check_Ack());//等待發送完成
_nop_();
_nop_();
_nop_();
LED=~LED;
delay_ms(2000);
  }
}

接收端主函數
void main(void)
{
nRF24L01_Init();//NRF24L01初始化
ini_1602();
ini_play();

while(1)
{
nRF24L01_Set_RX_Mode();
   if(nRF24L01_RX_Data())
   {
    w_num(RX_Buffer[0]);   
  Buzzer_P=0;
  delay_ms(150);
  Buzzer_P=1;
   }  
delay_ms(2000);
  }
}


收發模式設置的函數應該都沒有問題吧   我覺得。

//設置發送模式
void nRF24L01_Set_TX_Mode(uchar *TX_Data)
{
CE=0;//待機(寫寄存器之前一定要進入待機模式或掉電模式)
SPI_W_DBuffer(W_REGISTER+TX_ADDR,TX_Addr,TX_ADDR_WITDH);//寫寄存器指令+接收節點地址+地址寬度
SPI_W_DBuffer(W_REGISTER+RX_ADDR_P0,TX_Addr,TX_ADDR_WITDH);//為了接收設備應答信號,接收通道0地址與發送地址相同
SPI_W_DBuffer(W_TX_PLOAD,TX_Data,TX_DATA_WITDH);//寫有效數據地址+有效數據+有效數據寬度

SPI_W_Reg(W_REGISTER+EN_AA,0x01);//接收通道0自動應答
SPI_W_Reg(W_REGISTER+EN_RX_ADDR,0x01);//使能接收通道0
SPI_W_Reg(W_REGISTER+SETUP_RETR,0x0a);//自動重發延時250US+86US,重發10次
SPI_W_Reg(W_REGISTER+RF_CH,0);//2.4GHZ
SPI_W_Reg(W_REGISTER+RF_SETUP,0x07);//1Mbps速率,發射功率:0DBM,低噪聲放大器增益
SPI_W_Reg(W_REGISTER+CONFIG,0x0e);//發送模式,上電,16位CRC校驗,CRC使能

CE=1;//啟動發射
_delay_ms(5);//CE高電平持續時間最少10US以上
}
//檢測應答信號
uchar Check_Ack(void)
{
sta=SPI_R_byte(R_REGISTER+STATUS);//讀取寄存狀態
if(TX_DS||MAX_RT)//如果TX_DS或MAX_RT為1,則清除中斷和清除TX_FIFO寄存器的值
{
SPI_W_Reg(W_REGISTER+STATUS,0xff);
CSN=0;
SPI_RW(FLUSH_TX);//如果沒有這一句只能發一次數據,大家要注意
CSN=1;
return 0;
}
else
return 1;
}




//接受模式
void nRF24L01_Set_RX_Mode(void)
{
CE=0;//待機
// SPI_W_DBuffer(W_REGISTER+TX_ADDR,TX_Addr,TX_ADDR_WITDH);
SPI_W_DBuffer(W_REGISTER+RX_ADDR_P0,TX_Addr,TX_ADDR_WITDH);
SPI_W_Reg(W_REGISTER+EN_AA,0x01);
SPI_W_Reg(W_REGISTER+EN_RX_ADDR,0x01);
SPI_W_Reg(W_REGISTER+SETUP_RETR,0x0a);
SPI_W_Reg(W_REGISTER+RX_PW_P0,RX_DATA_WITDH);
SPI_W_Reg(W_REGISTER+RF_CH,0);
SPI_W_Reg(W_REGISTER+RF_SETUP,0x07);
SPI_W_Reg(W_REGISTER+CONFIG,0x0f);
CE=1;
_delay_ms(5);
}

uchar nRF24L01_RX_Data(void)
{
sta=SPI_R_byte(R_REGISTER+STATUS);
if(RX_DR)
{
CE=0;
SPI_R_DBuffer(R_RX_PLOAD,RX_Buffer,RX_DATA_WITDH);
SPI_W_Reg(W_REGISTER+STATUS,0xff);
CSN=0;
SPI_RW(FLUSH_RX);
CSN=1;
return 1;
}
else
return 0;
}



小弟看了好幾天了   不知道問題在哪里。本來就是想要把A系統采集的數據發送到B系統顯示    結果B系統收到的數據都是0’
代碼如上   希望大神指點一二。感激不盡
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:79544 發表于 2016-7-17 12:38 | 只看該作者
現在發送和接受的狀態指示燈有變化嗎?沒有就把發送的延時適當延長試試。_delay_ms(5);加到200.試試
回復

使用道具 舉報

板凳
ID:141688 發表于 2017-3-18 19:08 | 只看該作者
樓主,你問題解決沒,我遇到和你同樣的問題,想向你請教一下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕欧美日韩一区 | 久久国产精品一区二区三区 | 完全免费在线视频 | 精品影院 | 亚洲精品久久久久久久久久久久久 | 国产高清精品网站 | 美女天堂| 亚洲综合婷婷 | 日韩精品二区 | 国产专区在线 | 国产成人高清成人av片在线看 | 不卡视频在线 | 久久精品二区亚洲w码 | 午夜电影福利 | 久久久精品一区 | 久久91av| 亚洲精品日本 | 亚洲a在线视频 | 日韩精品免费播放 | 精品免费看 | 亚洲精品一区二区三区中文字幕 | 国产免费一区二区三区 | 手机看片在线播放 | 日本亚洲一区 | 午夜影院在线播放 | 在线视频一区二区三区 | 日韩五月天 | 亚洲成人黄色 | 亚洲一区二区在线视频 | 国产精品揄拍一区二区 | 中文字幕亚洲欧美 | 中文欧美日韩 | 精品欧美一区二区精品久久 | 日韩影院一区 | 2018国产精品| 九九久久这里只有精品 | 日韩午夜网站 | 国内自拍偷拍 | 欧美日韩精品影院 | 99re热精品视频国产免费 | 国产视频精品在线 |