【问题标题】:No matching function for call to 'CFastLED::addLeds(CRGB [6], int)没有匹配函数调用 'CFastLED::addLeds(CRGB [6], int)
【发布时间】:2019-12-23 01:17:31
【问题描述】:

我正在尝试在带有 ATmega328 板(LED 灯)的 Arduino Nano 上执行此 ino 代码,但我得到“没有匹配函数调用 'CFastLED::addLeds(CRGB [6], int)”错误。

知道可能是什么原因吗?我在 Ubuntu 14.04 上。

#include "FastLED.h"
#define NUM_LEDS 6
CRGB leds[NUM_LEDS];

void setup() {
  LEDS.addLeds<TM1803>(leds, NUM_LEDS);
}

【问题讨论】:

  • 不是FastLED.addLeds&lt;&gt;()?
  • 我添加了“FastLED.addLeds()”而不是“LEDS.addLeds”仍然是同样的错误。
  • 我对这个库一无所知,但文档示例采用两个模板参数,例如FastLED.addLeds&lt;NEOPIXEL, 4&gt;(leds, NUM_LEDS_PER_STRIP);
  • 我也试过了。但没有运气。

标签: c++ arduino ubuntu-14.04


【解决方案1】:

我没有使用 Arduino 的经验,但这是我在阅读 FastLED.h 后所理解的。

TM1803declared as

template<uint8_t DATA_PIN, EOrder RGB_ORDER>
class TM1803 : public TM1803Controller400Khz<DATA_PIN, RGB_ORDER> {};

所以LEDS.addLeds() 应该以某种方式调用these two overloads 之一:

template<template<uint8_t DATA_PIN, EOrder RGB_ORDER> class CHIPSET, uint8_t DATA_PIN, EOrder RGB_ORDER>
static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {
    static CHIPSET<DATA_PIN, RGB_ORDER> c;
    return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
}

template<template<uint8_t DATA_PIN, EOrder RGB_ORDER> class CHIPSET, uint8_t DATA_PIN>
static CLEDController &addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset = 0) {
    static CHIPSET<DATA_PIN, RGB> c;
    return addLeds(&c, data, nLedsOrOffset, nLedsIfOffset);
}

所以你必须在模板参数中指定DATA_PINDATA_PINRGB_ORDER,不管它们是什么意思:

LEDS.addLeds<TM1803, SOME_DATA_PIN, SOME_RGB_ORDER>(leds, NUM_LEDS); 
LEDS.addLeds<TM1803, SOME_DATA_PIN>(leds, NUM_LEDS);

【讨论】:

    【解决方案2】:

    我遇到了同样的问题和错误。以上帮助我编辑我的代码,使其工作。我必须为 LED 类型和数据引脚添加模板参数(以前从未听说过)。这是我的定义和代码:

    #include <FastLED.h>  
    //#define DEBUG 1
    #define LED_TYPE WS2812
    #define NUM_LEDS 64
    #define DATA_PIN A14 
    CRGB leds[NUM_LEDS];
    
    void setup()
    { 
    FastLED.addLeds<LED_TYPE, DATA_PIN>(leds, NUM_LEDS);
    }
    

    我使用 WS2812 作为猜测,因为我的矩阵 LED 是 WS2812B-64。显然第一部分就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 2020-07-02
      相关资源
      最近更新 更多