Здравствуйте, уважаемые читатели! В этой статье хотел бы чуть подробнее разобрать особенности работы библиотеки Wire в среде Arduino IDE. Эти особенности я хотел бы рассмотреть на примере записи данных во внешнюю EEPROM. Если взять для примера модуль EEPROM 24LC512, размером памяти 64 КБ, и открыть картинку 6-2, то можно увидеть, что кроме записи по одному байту, можно записывать блок данных, размером 128 байт. Но если мы в среде Arduino IDE попробуем записать блок данных из 128 байт, то открыв Монитор порта, увидим, что записалось только первые 30 байт, а остальные нули: Это происходит из-за того, что в самой библиотеки действует ограничение максимального размера буфера хранения данных в 32 байта (define BUFFER_LENGTH 32): Т.е. как раз 2 байта мы тратим на задание адреса ячейки памяти, куда будут записываться данные и 30 байт - сами данные. После выполнения функции Wire.endTransmission() данные из буфера библиотеки записываются в EEPROM память. Т.е. максимально за один раз, мы можем
Особенности работы с библиотекой Wire в среде Arduino IDE
30 мая 202130 мая 2021
365
2 мин