Я использую "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;

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

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;

Другие вопросы по тегам