Sparkfun Qwiic 系列组件使用 I2C 协议进行通信。所以传感器、执行器、显示器不是直接连接到 Arduino 的数字或模拟引脚上,而是都有一个使用 I2C 协议与 MCU 通信的芯片。
I2C 使用两条线,是一条总线,每个设备都有其地址。这允许链接 Qwiic 组件。
出于许可原因,Arduino 将 I2C 库命名为“Wire”而不是 I2C。Wire 库定义了一个名为 TwoWire 的类,并创建了一个类 TwoWire 的全局对象。这个全局对象被命名为 Wire。
Qwiic 库在您的草图的 setup() 中使用函数 begin() 进行初始化,这在 Arduino 中很常见。在这种情况下,begin() 函数具有可选参数。
boolean begin(TwoWire &wirePort = Wire, uint8_t deviceAddress = QWIIC_KEYPAD_ADDR);
这些参数是可选的,因为提供了默认值。第一个可选参数是对&
TwoWire 类型对象的引用,因此TwoWire&
. 而默认值是我之前提到的全局 Wire 对象。
begin() 函数将 TwoWire 实例用于具有多个 I2C 外设的 Arduino 上,以便能够使用 Wire1。
begin() 函数存储一个指向它应该使用的 TwoWire 对象的指针。他们将指针变量命名为 _i2cPort,所以它是TwoWire *_i2cPort;