标题: 用msp430和nrf24l01发送数据,电脑端也是nrf接收,接收不到是为啥 [打印本页]

作者: 笑我太痴狂    时间: 2018-5-3 14:53
标题: 用msp430和nrf24l01发送数据,电脑端也是nrf接收,接收不到是为啥
void SetTX_Mode(void)
{
        RF24L01_CE_0 ;
        
          SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);            
        SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, RX_ADR_WIDTH);
        SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);  
        SPI_RW_Reg(WRITE_REG + SETUP_RETR,0x1a);
        SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);  
        SPI_RW_Reg(WRITE_REG + RF_CH, 0);        
        SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH);
        
       // SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x0F);   //设置TX发射参数,0db增益,2Mbps,低噪声增益开启
        SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);   //设置发射速率为1MHZ,发射功率为最大值0dB

        SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);  
        ms_delay(1);
        RF24L01_CE_1;

}
有哪里不对么

作者: zk    时间: 2018-5-26 21:23
本站有文章《51单片机玩转NRF24L01》看一下,参考里面的方案逐步测试一下!提醒你,有可能是硬件问题!
作者: 头田荣一郎    时间: 2018-5-26 22:04
为什么没有将数据写到txbuf中的那一条语句呢
作者: 头田荣一郎    时间: 2018-5-26 22:06
这个是我的 你可以参考下,



void TX_Mode(void)
{
        CE=0;
       
          SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);    // Writes TX_Address to nRF24L01
          SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // RX_Addr0 same as TX_Adr for Auto.Ack
          SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // Writes data to TX payload

          SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);      // Enable Auto.Ack:Pipe0
          SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);  // Enable Pipe0
          SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a); // 500us + 86us, 10 retrans...
          SPI_RW_Reg(WRITE_REG + RF_CH, 40);        // Select RF channel 40
          SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);   // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
          SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);     // Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled..

        CE=1;

}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1