_rheos 向量中的 MCP 类对象的数量是事先不知道的。
std::vector我是第一次使用。请戳你的鼻子,怎么了。没有必要使用向量,但我没有找到动态对象数组的另一种解决方案。
class MCP
{
public:
MCP (mbed::SPI& spi, PinName cs) : _spi(spi), _cs(cs) {}
private:
mbed::SPI& _spi;
mbed::DigitalOut _cs;
};
class Load
{
public:
Load(uint8_t load_qty, mbed::SPI& spi, PinName rs) : _rs(rs)
{
for (register uint8_t i = 0; i < load_qty; i++)
{
_rheos.emplace_back(spi, NC); //Здесь всё падает
}
}
private:
mbed::DigitalOut _rs;
std::vector<MCP> _rheos;
};
int main()
{
mbed::SPI spi1(MOSI, MISO, SCK);
Loads RLoads(7, spi1, BUTTON1);
}
编译成功,但不起作用。
问题原来是我
MCP不喜欢NC质量PinName。同时,例如,如果以某种方式SPI声明了同一个spi2(MOSI, NC, SCK);,则没有问题,一切正常。mbed-os 魔法。