【问题标题】:Store object instances of PCA9635 in array将 PCA9635 的对象实例存储在数组中
【发布时间】:2021-10-22 15:56:57
【问题描述】:

我正在使用一个名为“PCA9635”的硬件 PWM-LED-Controler。该芯片可以在 Arduino 中通过库“PCA9635”进行控制。

在库中提供的示例中,i2c 地址为 0x70 的 ledArray 由以下人员发起:

#include "PCA9635.h"

PCA9632 ledArray(0x70);

我的项目需要未知数量的 PCA935 控制器使用不同的地址进行控制。

我怎样才能创建一个像这样的数组:

PCA9635 ledControlers[2] = {0x70,0x71};

以上行不通。来自编译器的错误消息: conversion from 'const int' to non-scalar type 'PCA9635' requested

感谢您的建议。

【问题讨论】:

    标签: c++ arrays object arduino i2c


    【解决方案1】:

    试试

    PCA9635 ledControlers[2] = {PCA9635(0x70), PCA9635(0x71)};
    

    PCA9635 ledControlers[] = {PCA9635(0x70), PCA9635(0x71)};
    

    【讨论】:

    • 这行得通。谢谢。你能解释一下逻辑吗?
    • includehelp.com/cpp-tutorial/… 展示了“如何使用 C++ 中的构造函数初始化对象数组”。顺便说一句:问题与 I2C 无关,而是 C++ 而不是 Arduino 特定的。
    • @matchless_clueless 当您使用 PCA9635 ledControlers[2] = {0x70,0x71}; 时,您将 const int 分配给 PCA9635 类型的对象。当您使用 PCA9635 ledControlers[2] = {PCA9635(0x70), PCA9635(0x71)}; 时,您将使用 PCA9635 的构造函数创建的对象分配给 PCA9635 类型的对象。
    猜你喜欢
    • 2019-11-03
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    相关资源
    最近更新 更多