microbit.i2c.scan() Scan the bus for devices. Returns a list of 7-bit addresses corresponding to those devices that responded to the scan.

Комментарии: 11

  1. Zhorik

    Ну да, есть такое, проверяется ACK от устройств если не ошибаюсь. А как ты пытаешься общаться с устройством?

    • Artem

      На ардуинке void setup() { Wire.begin(0x08); // Join the I2C bus as slave with address 0x08 Wire.onReceive(receiveEvent); // Register event for received data Serial.begin(9600); } void loop() { // Main code } void receiveEvent(int howMany) { while (Wire.available()) { char c = Wire.read (); // Receive a byte as character Serial.print(c); // Print the received character } Serial.println(); }

      • Nng

        так ну че, ребят как думаете по идеи чтоб варить сварочником литий? взяв только напругу с него

        • Uuuuuyah

          Думаю ты немного псих хотя хуй его знает зачем тебе надо варить литий

      • Zhorik

        Я понимаю. Ты знаешь как работает I²C?

      • Artem

        Примерно. Что есть две линии, по одной бегут часики а вторая для данных. Линии надо подтянуть резисторами по 4-10кОм Я быстро глянул осликом линию данных и там тихо было когда слейв должен был отправлять данные Сорян, не тот код))) этот код как раз работает

      • Zhorik

        Тебе нужно перевести интерфейс в режим старт, передать адрес с битом записи, передать адрес по которому ты хочешь работать, и всё что пеоедаёшь дальше будет записано в слейв начиная с переданного рабочего адреса. Если тебе нужно читать с устройства, то нужно передать сначала адрес устройства и рабочий адрес в режиме записи, сделать стоп старт и передать адрес устройства в режиме чтения.

        • Artem

          Понятно. Но я пытаюсь избежать этих деталей используя высокоуровневые библиотеки

          • Zhorik

            Слейв отправляет данные только когда мастер передал ему адрес с битом чтения и дальше мастер должен слать тактовый сигнал. Тактовый сигнал в любом случае должен создавать мастер. Слейв может только удерживать сигнал если данные ещё не готовы, мастер всегда проверяет это перед подачей следующего тактового импульса.

            • Artem

              Понятно. Пойду покопаюсь в своем коде

            • Artem

              Могут быть проблемы в подтягивающих резисторах на стороне мастера? Там вроде 46кОм стоят а на ардуине 4.7

Не нашли ответ?

Вам также может быть интересно