Я использую "SparkFun Qwiic Keypad", для библиотеки клавиатуры некоторые не понимают
Я использую "SparkFun Qwiic Keypad",
и я изучаю Arduino_Library, предоставленную SparkFun.
Некоторые не понимают.
В "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;
1 ответ
Компоненты серии Sparkfun Qwiic используют протокол I2C для связи. Таким образом, датчики, исполнительные механизмы и дисплеи не подключены напрямую к цифровым или аналоговым контактам Arduino, но все они имеют чип, который использует протокол I2C для связи с MCU.
I2C использует два провода и представляет собой шину, на которой каждое устройство имеет свой адрес. Это позволяет связать компоненты Qwiic.
По причинам, связанным с лицензией, Arduino назвала библиотеку I2C "Wire", а не I2C. Библиотека Wire определяет класс с именем TwoWire и создает глобальный объект класса TwoWire. Этот глобальный объект называется Wire.
Библиотеки Qwiic инициализируются функцией begin() в setup() вашего скетча, как это обычно бывает в Arduino. В этом случае функция begin() имеет необязательные параметры.
boolean begin(TwoWire &wirePort = Wire, uint8_t deviceAddress = QWIIC_KEYPAD_ADDR);
Параметры не являются обязательными, поскольку указаны значения по умолчанию. Первый необязательный параметр - это ссылка
&
объекту типа TwoWire, поэтому
TwoWire&
. А значением по умолчанию является глобальный объект Wire, о котором я упоминал ранее.
Функция begin() берет экземпляр TwoWire для использования на Arduinos с несколькими периферийными устройствами I2C, чтобы иметь возможность использовать Wire1.
Функции begin() хранят указатель на объект TwoWire, который он должен использовать. Они назвали указательную переменную _i2cPort, так что это
TwoWire *_i2cPort;