Давайте напишем нормальную библиотеку для I2C for arduino

LytYS

✩✩✩✩✩✩✩
4 Дек 2018
4
0
Как выяснил нормальной библиотеки для обмена информацией между ардуино не существует.
Стандартная Wire.h зависает когда не получит ответа.
А сторонние типа I2C.h, работают только на прием, на передачу увы никак.
Неужели спрос на данный тип передачи данных настолько мал, что никто не переписал библиотеку или не поправил библиотеку Wire.h.
Может совместными усилиями напишем свою библиотеку, на прием и передачу данных.
 

LytYS

✩✩✩✩✩✩✩
4 Дек 2018
4
0
Поискал -"i2c no block arduino"
Нашёл вот такую. Заявляется, что она не блокирующие методы использует.
Там примеры как раз есть.
Супер это то что нужно, библиотека действительно рабочая, Спасибо огромное.
Не понимаю как не натолкнулся на нее ранее, гуглил в течении недели и не нашел рабочей библиотеки.
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
В недрах Wiring есть базовая часть twi.h, twi.c - вполне нормальный пакет для I2C работающий на базе аппаратного драйвера. Есть в моей теме "Ардуино как лего" в проектах, выложенная реализация полноценного драйвера, работающего без Wiring вообще, способного работать в стиле автоматного программирования, кроме того, его ещё можно и собирать под нужды, размер зависит только от количества подключенных режимов, скорость передачи до 880кГц включительно .. впрочем там же есть и примитивы, сильно упрощающие жизнь автоматного стиля разработки ..
Не всё тщательно тестировано .. так Вам и "карты в руки". ;)
...
И когда делал свой драйвер I2C нашел несколько подобных релизов на гитхабе, да вот и тот же twi внутрях Wiring .. их "полно". ;)
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,409
976
58
Марий-Эл
Это не скорость передачи, как таковая. Это частота SCL.
Так за один тик SCL передаётся 1 бит.
Так что 880 КГц. Это 880000 бит в секунду.
Правда есть служебные тики которые немного съедают скорость передачи.