查看: 520|回复: 5

[未解决] nun+nrf24l01只接收3条信息就不接了

[复制链接]
  • TA的每日心情
    郁闷
    2019-4-15 15:12
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-7-25 17:20 | 显示全部楼层 |阅读模式
    大概是这样用的uno 板子和nrf24l01无线模块,可以接收信息但是接收几条就没了,但是如果重启发射端设备就又可以接收几条
    DTIVS]T8HXIO6GUT647%][H.png
  • TA的每日心情
    郁闷
    2019-4-15 15:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-7-25 17:25 | 显示全部楼层
    发送端代码


    /*
    Radio    Arduino
    CE    -> 9
    CSN   -> 10 (Hardware SPI SS)
    MOSI  -> 11 (Hardware SPI MOSI)
    MISO  -> 12 (Hardware SPI MISO)
    SCK   -> 13 (Hardware SPI SCK)
    IRQ   -> 3  (Hardware INT1)
    VCC   -> No more than 3.6 volts
    GND   -> GND
    */
    #include <SPI.h>
    #include <NRFLite.h>
    const static uint8_t RADIO_ID = 1;
    const static uint8_t DESTINATION_RADIO_ID = 0;
    const static uint8_t PIN_RADIO_CE = 9;
    const static uint8_t PIN_RADIO_CSN = 10;
    const static uint8_t PIN_RADIO_IRQ = 3;
    NRFLite _radio;
    uint8_t _data;
    uint32_t _lastSendTime;
    volatile uint8_t _sendSucceeded, _sendFailed;
    void setup()
    {
        Serial.begin(115200);
        if (!_radio.init(RADIO_ID, PIN_RADIO_CE, PIN_RADIO_CSN))
        {
            Serial.println("Cannot communicate with radio");
            while (1);
        }
        attachInterrupt(digitalPinToInterrupt(PIN_RADIO_IRQ), radioInterrupt, FALLING);
    }
    void loop()
    {
       
        if (millis() - _lastSendTime > 999)
        {
            _lastSendTime = millis();
            
            _data++;
            Serial.print("Sending ");
            Serial.print(_data);        
            _radio.startSend(DESTINATION_RADIO_ID, &_data, sizeof(_data));      
        }
        if (_sendSucceeded)
        {
            _sendSucceeded = false;
            Serial.println("...Success");
        }
       
        if (_sendFailed)
        {
            _sendFailed = false;
            Serial.println("...Failed");
        }
    }
    void radioInterrupt()
    {
       
        uint8_t txOk, txFail, rxReady;
        _radio.whatHappened(txOk, txFail, rxReady);
        if (txOk)
        {
            _sendSucceeded = true;
        }   
        if (txFail)
        {
            _sendFailed = true;
        }
    }
  • TA的每日心情
    郁闷
    2019-4-15 15:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-7-25 17:26 | 显示全部楼层
    接收端代码

    /*
    Radio    Arduino
    CE    -> 9
    CSN   -> 10 (Hardware SPI SS)
    MOSI  -> 11 (Hardware SPI MOSI)
    MISO  -> 12 (Hardware SPI MISO)
    SCK   -> 13 (Hardware SPI SCK)
    IRQ   -> 3  (Hardware INT1)
    VCC   -> No more than 3.6 volts
    GND   -> GND
    */

    #include <SPI.h>
    #include <NRFLite.h>

    const static uint8_t RADIO_ID = 0;
    const static uint8_t PIN_RADIO_CE = 9;
    const static uint8_t PIN_RADIO_CSN = 10;
    const static uint8_t PIN_RADIO_IRQ = 3;

    NRFLite _radio;
    volatile uint8_t _dataWasReceived;

    void setup()
    {
        Serial.begin(115200);

        if (!_radio.init(RADIO_ID, PIN_RADIO_CE, PIN_RADIO_CSN))
        {
            Serial.println("Cannot communicate with radio");
            while (1);
        }

        attachInterrupt(digitalPinToInterrupt(PIN_RADIO_IRQ), radioInterrupt, FALLING);
    }

    void loop()
    {
        if (_dataWasReceived)
        {
            _dataWasReceived = false;
            
            while (_radio.hasDataISR())
            {
                uint8_t data;
                _radio.readData(&data);
                Serial.print("Received ");
                Serial.println(data);
            }
        }
    }

    void radioInterrupt()
    {
       

        uint8_t txOk, txFail, rxReady;
        _radio.whatHappened(txOk, txFail, rxReady);

       
        if (rxReady)
        {
            _dataWasReceived = true;
        }
    }
  • TA的每日心情
    郁闷
    2019-4-15 15:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-7-25 17:45 | 显示全部楼层
    接线也没接错
  • TA的每日心情
    郁闷
    2019-4-15 15:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-7-25 23:00 | 显示全部楼层
    没人吗,我好像看到好多人都是这个问题,或者是接收不到
  • TA的每日心情
    擦汗
    2019-11-10 00:34
  • 签到天数: 115 天

    [LV.6]常住居民II

    发表于 2019-7-26 23:57 | 显示全部楼层
    注释里面有一句:
    NO MORE THAN 3.6 VOLT!!!
    中文意思是不超过3.6伏!
    请注意模块电源输入是否接成了5V!!!
    如果是,改接3.3v!!!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    程序设计问题求大虾们帮帮忙
    程序设计问题求大虾们帮帮
    大家好,我是一个萌新想设计一个程序,现在遇到困难了。当运行按下按钮,电机会向end
    请问 3块 MCP 4725 ,能否同时接在一起使用?
    请问 3块 MCP 4725 ,能否
    买来时,ADDR是全开路的,使用代码中的所有地址,均无法使用。 // For Adafruit M
    打砖块游戏
    打砖块游戏
    **** 本内容被作者隐藏 ****
    OLED 128*64自制可达10000000个选项的菜单(已更新)
    OLED 128*64自制可达10000
    OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表