查看: 403|回复: 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-9-17 15:14
  • 签到天数: 107 天

    [LV.6]常住居民II

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

    本版积分规则

    热门推荐

    【Arduino】108种传感器模块系列实验(55)---DHT11温湿度传感器
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】108种传感器模块系列实验(40)---旋转编码器模块
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    基于机器视觉的智能分拣机械臂
    基于机器视觉的智能分拣机
    本作品是一个基于机器视觉的智能机械臂操作平台,其采用atmega32单片机作为主控制系统
    请问HMC5883L的三个数据到底代表什么,如何做成指南针?
    请问HMC5883L的三个数据到
    或者哪位朋友有资料给个连接?网上愣是没找到。都只介绍了如何读取数据。我想做成图
    关于atmega328p-pu 地的问题
    关于atmega328p-pu 地的问
    请问图中ADC的地和VCC的地在单片机内部有连接吗?本人初学者,因为需要控制模拟电路,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表