智能车制作

标题: 24l01只能接收一次 [打印本页]

作者: Stan克    时间: 2015-3-17 15:03
标题: 24l01只能接收一次
我的24l01每接收完一次。要重新初始化接收初始化函数 才能接收第二次,这是为什么呢,有大神能讲解一下吗,以下是接收初始化函数
uint8 LPLD_Nrf24L01_RxModeInit(void)
{
  uint8 Temp;
  
  NRF24L01_CE_L;
  // 芯片上电复位后
  // 分别读取NRF24L01_RX_ADDR_P0、NRF24L01_RX_ADDR_P1、NRF24L01_TX_ADDR的值
  // 查看以下数据
  // NRF24L01_RX_ADDR_P0的复位值是否为0xE7E7E7E7
  // NRF24L01_RX_ADDR_P1的复位值是否为0xC2C2C2C2
  // NRF24L01_TX_ADDR的复位值是否为0xE7E7E7E7
  // 如果正确证明SPI读写没有问题,反之亦然
  LPLD_Nrf24L01_CheckID();

  Temp=LPLD_Nrf24L01_WriteBuf(NRF24L01_WRITE_REG + NRF24L01_RX_ADDR_P0, RX_ADDRESS, NRF24L01_RX_ADR_LEN);
  Temp=LPLD_Nrf24L01_WriteReg(NRF24L01_WRITE_REG + NRF24L01_RX_PW_P0, NRF24L01_PLOAD_LEN);
  
  Temp=LPLD_Nrf24L01_WriteReg(NRF24L01_WRITE_REG + NRF24L01_EN_AA, 0x01);      //频道0自动,ACK应答允许      
  Temp=LPLD_Nrf24L01_WriteReg(NRF24L01_WRITE_REG + NRF24L01_EN_RXADDR, 0x01);  //允许接收地址只有频道0
  Temp=LPLD_Nrf24L01_WriteReg(NRF24L01_WRITE_REG + NRF24L01_SETUP_RETR, 0x1a); // 500us + 86us, 10 retrans...        
  Temp=LPLD_Nrf24L01_WriteReg(NRF24L01_WRITE_REG + NRF24L01_RF_CH, 40);        //设置信道工作为2.4GHZ,收发必须一致  
  Temp=LPLD_Nrf24L01_WriteReg(NRF24L01_WRITE_REG + NRF24L01_RF_SETUP, 0x0F);   //设置发射速率为1MHZ,发射功率为最大值0dB
  Temp=LPLD_Nrf24L01_WriteReg(NRF24L01_WRITE_REG + NRF24L01_CONFIG, 0x0F);     //使能CRC校验,使能RX,并且上电
  
  NRF24L01_CE_H;  
  
  Nrf24L01_DelayUs(2000);//等待Nrf24L01接收模式初始化完毕
  
  return Temp;
}
作者: AMB    时间: 2015-6-24 01:14
这不是LPLD的例程吗???求程序啊。24L01用LPLD的例程老是收不到程序,进不了接收程序的中断




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2