我正在寻找硬件 I/O 点或引脚的 C++ 抽象。诸如 in_pin、out_pin、inout_pin、open_collector_pin 之类的东西。
我自己当然可以想出这样一组抽象,所以我不是在寻找“嘿,你可能会这样做”类型的答案,而是“看看这个和这个中使用的这个库,以及这个项目'。
谷歌没有发现任何东西,也许是因为我不知道其他人会怎么称呼它。
我的目标是构建基于这些点的 I/O 库,但也提供这些点,因此很容易将 HD44780 LCd 连接到芯片的 IO 引脚或 I2C(或 SPI) I/O 扩展器,或任何其他可以以某种方式控制的点,而不会对 LCD 类进行任何更改。
我知道这是在电子/软件边缘,如果它不属于这里,对不起。
@leon:接线那是一大包软件,我需要仔细看看。但似乎他们没有像我想要的那样使用 pin 抽象。例如在我看到的键盘实现中
digitalWrite(columnPins[c], LOW); // Activate the current column.
这意味着有一个函数 (digitalWrite) 知道如何写入 I/O 引脚。这使得在不重写 digitalWrite 函数的情况下无法添加新类型的 I/O 引脚(例如 MCP23017 上的引脚,因此必须通过 I2C 写入)。
@Oli:我用谷歌搜索了一个 Arduino IO 示例,但似乎使用与 Wiring 库相同的方法:
int ledPin = 13; // LED connected to digital pin 13
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}