Добрый день. Столкнулся со странной и нелепой на мой взгляд проблемой. Попал мне в руки LCD 1602 с припаянным I2C адаптером, решил проверить быстродействие, под рукой была платка Nano. Подключил, не работает. Но вопрос не про дисплей, забудем про него. Начал разбираться, подключил анализатор непосредственно к SCL и SDA и увидел странную штуку На диаграмме видно, что передача по i2c инициализируется, но ничего не передается, как будто Wire.write() ничего не делает. Вот код (дефолтный пример MasterWriter из Arduino IDE): Код (C++): #include <Wire.h> voidsetup(){ Wire.begin();// join i2c bus (address optional for master) } byte x =0; voidloop(){ Wire.beginTransmission(8);// transmit to device #8 Wire.write("x is "); // sends five bytes Wire.write(x); // sends one byte Wire.endTransmission(); // stop transmitting x++; //delay(500); закомментировал для более плотной диаграммы } Схему подключения приводить не буду, т.к. анализатор банально подключен тремя проводами к соответствующим выводам Nano. Никто не сталкивался с подобным феноменом? P.S. С Ардуино я ранее не работал, все проекты делал на голых мегах, разводя сразу печатные платы, а код писал в Atmel Studio, с I2C никогда никаких проблем не было. До сего дня. P.P.S. Nano абсолютно рабочая, подключал к ней различные LCD, чтобы проверить их работоспособность.
Подтверждения не приходит, как я понимаю. На девятом импульсе на SCL слейв должен притянуть SDA вниз.