国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

ELEOK

標題: 51單片機+NRF2401收發程序 [打印本頁]

作者: coolfire    時間: 2021-4-21 03:28
標題: 51單片機+NRF2401收發程序
NRF2401收發程序只需要修改參數即可實現收發功能。
  1. void NRF_SendMode(void)
  2. {
  3.         NRF_WriteBytes(TX_ADDR,TxAddr,5);    //設置發送地址               
  4.         NRF_WriteReg(EN_AA,0x01);                         //允許P0自動應答
  5.         NRF_WriteReg(EN_RXADDR,0x01);                 //P0接收
  6.         NRF_WriteBytes(RX_ADDR_P0,RxAddr,5); //自動應答地址
  7.         NRF_WriteReg(RF_CH,40);                         //頻率
  8.         NRF_WriteReg(RF_SETUP,0x07);                 //功率和速度
  9.         NRF_WriteReg(CONFIG,0x0e);                 //發送模式      

  10. }

  11. void NRF_RecvMode(void)
  12. {
  13.         NRF_WriteReg(EN_RXADDR,0x01);                 //P0接收
  14.         NRF_WriteBytes(RX_ADDR_P0,RxAddr,5); //接收地址
  15.         NRF_WriteReg(EN_AA,0x01);                         //允許P0自動應答
  16.         NRF_WriteReg(RF_CH,40);                         //頻率
  17.         NRF_WriteReg(RF_SETUP,0x07);                 //功率和速度                       
  18.         NRF_WriteReg(RX_PW_P0,32);         //數據有效寬度
  19.         NRF_WriteReg(CONFIG,0x0f);                 //接收模式

  20. }


  21. //返回值 0 存在設備 1 設備有問題
  22. //參數 0 發送模式   1接收模式
  23. u8 NRF_CONFIG(u8 mode)
  24. {
  25.          
  26.                 NRF_IO_Init();
  27.                 if(NRF_CheckDev()) //檢測設備存在
  28.           {
  29.                                 return 0xff;
  30.                 }

  31.                 switch(mode)
  32.                 {

  33.                         case NRF_TX:NRF_SendMode();                             
  34.                                      break; //發送
  35.                         case NRF_RX:NRF_RecvMode();
  36.                                                                          break; //接收
  37.                        
  38.                         default: return 0xff;
  39.                 }
  40.                
  41.           return 0x00;
  42. }


  43. void NRF_SendData(u8 *sbuf,u8 len)
  44. {
  45.                 CE = 0;
  46.     CSN = 0;
  47.                 if(len>32)len = 32; //限制最大32個字節
  48.           NRF_SPI_RW(WR_TX_PLOAD); //發送fifo地址
  49.           while(len--)
  50.                 {
  51.                   NRF_SPI_RW(*sbuf++);
  52.                 }
  53.                 CSN = 1;
  54.                 CE = 1;
  55. }
復制代碼
51d單片機_NRF24L01程序源碼(整理后).zip (90.47 KB, 售價: 1 E幣)







歡迎光臨 ELEOK (http://www.afoofa.cn/) Powered by Discuz! X5.0