Raspberry pi библиотека bcm2835 не работает i2c

Тема в разделе "Raspberry Pi", создана пользователем Pitekantrop, 21 мар 2022.

  1. Pitekantrop

    Pitekantrop Нерд

    В библиотеке попробовал управление ногами, SPI - все работает как в примерах.
    А пример работы I2C - вешает шину, последующий запуск утилитки i2cdetect - на шине отсутствие девайсов. По осциллографу видно что, i2cdetect вообще перестает ногами шины шевелить.
    Может кто с таким сталкивался?
     
  2. Un_ka

    Un_ka Гуру

    Библиотека для Си? Можно хотя бы ссылку на гитхаб, если есть.
     
  3. Pitekantrop

    Pitekantrop Нерд

  4. Un_ka

    Un_ka Гуру

    А код какой?
     
  5. Pitekantrop

    Pitekantrop Нерд

    Код (Text):
    char buf[20];
    int main()
    {
    int i,k;
    char tmp[100];

        if (!bcm2835_init())
        {
          printf("bcm2835_init failed. Are you running as root??\n");
          return 1;
        }

        if (!bcm2835_i2c_begin())
        {
            printf("bcm2835_i2c_begin failed. Are you running as root??\n");
            return 1;
        }
       bcm2835_i2c_setSlaveAddress(0x68);
       bcm2835_i2c_set_baudrate(1000000);

        //data = bcm2835_i2c_read(buf, 1);

        bcm2835_i2c_end();
        bcm2835_close();

    return(0);
    }
     
    Даже при закоментированном чтении после старта этого кода последующие вызовы утилитки i2cdetect не шевелят ногами шину.
     
  6. Un_ka

    Un_ka Гуру

    Вы код без заголовков библиотек сюда скопировали?
    Откуда брали данный пример?
    Вроде все должно работать. А какой результат исполнения программы?
     
  7. Pitekantrop

    Pitekantrop Нерд

    Скопировал без заголовка. Примеры кода работы i2c есть на сайте библиотеки. Сcылку я давал выше.
    Через python получается писать и читать в часы реального времени - DS1307. При попытке чтения через bcm2835 - на осциллографе картинка как и на python. Но регистры не читаются. И i2cdetect тоже после этого не работает. Думается что выход из режима i2c не очень правильный.