Arduino I2CDEV_BUILTIN_FASTWIRE

#arduino #warnings

#arduino #предупреждения

Вопрос:

Я использую I2Cdevlib для проекта Arduino. Я активировал подробную компиляцию и получаю это предупреждение:

 I2Cdev.cpp:64:14: warning: #warning Using current Arduino IDE with Wire library is functionally limiting.
I2Cdev.cpp:65:14: warning: #warning Arduino IDE v1.0.1  with I2CDEV_BUILTIN_FASTWIRE implementation is recommended.
I2Cdev.cpp:66:14: warning: #warning This I2Cdev implementation does not support:
I2Cdev.cpp:67:14: warning: #warning - Timeout detection (some Wire requests block forever)
  

Я не понимаю, что это за версия Arduino и где я могу ее найти. Мои проекты блокируются через несколько минут, это состоит в постоянном считывании данных с гироскопа. Поэтому я подумал, что это предупреждение может дать мне подсказку о том, что происходит.

Ответ №1:

I2C изначально определен без тайм-аута. Более поздняя производная от I2C (например, SMBus) добавила возможность тайм-аута устройства (обычно через 10-50 мс). Если устройство с тайм-аутом подключено к устройству без тайм-аута и связь происходит очень медленно, они могут не синхронизироваться и зависать.

Ответ №2:

Я нашел I2CdevLib для Arduino, и, похоже, в последней версии это исправлено. Исходный код можно найти здесь : https://github.com/jrowberg/i2cdevlib/blob/master/Arduino/I2Cdev/I2Cdev.cpp

Обновление вашего I2CdevLib должно решить проблему.(Вы скачали его или он был доставлен с вашей Arduino IDE?)

Если ваша версия Arduino IDE меньше 1.6.x, вам также следует обновить.