#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, вам также следует обновить.