我用的是"SparkFun快捷键“
我正在学习"SparkFun“提供的Arduino_Library。
有些人不理解。
在"SparkFun_Qwiic_Keypad_Arduino_Library.h“中,第50和62行,
它里面的"TwoWire *_i2cPort“是什么?目的是什么?
我是一个超级C& C++新手,希望大家能帮忙解释一下。
谢谢你,所以much=]
行(50)布尔开始(TwoWire &wirePort = Wire,uint8_t deviceAddress = QWIIC_KEYPAD_ADDR);
线路(61)专用:线路(62) TwoWire *_i2cPort;
发布于 2020-10-24 23:18:17
Sparkfun Qwiic系列组件使用I2C协议进行通信。因此,传感器、执行器、显示器都没有直接连接到Arduino的数字或模拟引脚上,而是都有一个芯片,它使用I2C协议与单片机进行通信。
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()函数获取在具有多个I2C外围设备的Arduinos上使用的TwoWire实例,以便能够使用Wire1。
begin()函数存储一个指向它应该使用的TwoWire对象的指针。他们将指针变量命名为_i2cPort,因此它是TwoWire *_i2cPort;
https://stackoverflow.com/questions/64514471
复制相似问题