我用的是"SparkFun Qwiic Keypad",对于Keypad Library有些不懂

I am using "SparkFun Qwiic Keypad", For Keypad Library some do not understand

我正在使用“SparkFun Qwiic 键盘”,

我正在了解“SparkFun”提供的Arduino_Library。

有些不明白

在“SparkFun_Qwiic_Keypad_Arduino_Library.h”中,第 50 行和第 62 行,

里面的“TwoWire *_i2cPort”是什么?目的是什么?

本人是C&C++超级菜鸟,希望大家帮忙解释一下

非常感谢=]

lines (50) boolean begin(TwoWire &wirePort = Wire, uint8_t deviceAddress = QWIIC_KEYPAD_ADDR);

第 (61) 行私人: 第 (62) 行 TwoWire *_i2cPort;

https://github.com/sparkfun/SparkFun_Qwiic_Keypad_Arduino_Library/blob/master/src/SparkFun_Qwiic_Keypad_Arduino_Library.h

Sparkfun Qwiic系列组件使用I2C协议进行通信。所以传感器、执行器、显示器都没有直接连接到Arduino的数字或模拟引脚,而是都有一个芯片使用I2C协议与MCU通信。

I2C 使用两条线,是一条总线,每个设备都有其地址。这允许链接 Qwiic 组件。

出于许可原因,Arduino 将 I2C 库命名为“Wire”而不是 I2C。 Wire 库定义了一个名为 class 的 TwoWire,并创建了一个 class TwoWire 的全局对象。此全局对象名为 Wire。

Qwiic 库在您的草图的 setup() 中使用函数 begin() 进行初始化,这在 Arduino 中很常见。在这种情况下,begin() 函数具有可选参数。

boolean begin(TwoWire &wirePort = Wire, uint8_t deviceAddress = QWIIC_KEYPAD_ADDR);

这些参数是可选的,因为提供了默认值。第一个可选参数是对 TwoWire 类型对象的引用 &,因此 TwoWire&。而默认值就是我之前提到的全局Wire对象。

begin() 函数将 TwoWire 实例用于具有多个 I2C 外围设备的 Arduinos,以便能够使用 Wire1。

begin() 函数存储指向它应该使用的 TwoWire 对象的指针。他们将指针变量命名为_i2cPort,所以它是TwoWire *_i2cPort;