晚上好!
我正在写一个 Arduino 库。在其中,我想从另一个库中实例化一个对象,该库的构造函数需要传递一个参数,但我不想硬编码这样的参数。我需要一些关于如何做到这一点的指导。
到目前为止,这是我的代码的相关部分:
汇丰银行_CAN.h:
class HSBC_CAN {
public:
HSBC_CAN(uint8_t, uint8_t);
private:
uint8_t _int_pin;
};
HSBC_CAN.cpp:
#include <HSBC_CAN.h>
#include <mcp_can.h>
extern MCP_CAN *canbus_esc;
HSBC_CAN::HSBC_CAN(uint8_t int_pin, uint8_t cs_pin) {
_int_pin = int_pin;
canbus_esc = new MCP_CAN(cs_pin);
}
需要明确的是,从 MCP_CAN 类中实例化对象的方法是MCP_CAN foo(int bar)
,其中bar
是 SPI 协议的片选引脚号。我希望我的库实例化 MCP_CAN 类的对象,但在从我的新类 HSBC_CAN 实例化对象时,我需要能够传递芯片选择引脚号。这是我使用上面的代码得到的错误:
error: request for member 'begin' in 'canbus_esc', which is of pointer type 'MCP_CAN*' (maybe you meant to use '->' ?)
可能我在示例代码中所做的方式是完全错误的(使用extern
关键字和new
运算符),但这正是我脑海中 ATM 的结果。
谢谢你的时间。