Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Разработка
  3. С/C++/Qt
  4. Программирование GPIO: пара вопросов.

Программирование GPIO: пара вопросов.

Запланировано Прикреплена Закрыта Перенесена С/C++/Qt
11 Сообщения 2 Posters 92 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано pi
    #1

    Здравствуй, Всезнающий All!
    Столкнулся с необходимостью работы с GPIO на малинке, плюс - с организацией дополнительных (программных) последовательных интерфейсов (пока выбор пал на UART и I2C), чтобы не трогать занятые системой.
    В связи с этим пара вопросов:

    1. Кто какие либы использует для этих целей, и чем они понравились?
      Я пока нашёл WiringPi и PiGPIO, но может есть еще что-то...

    2. Где-то встречал библиотеку программно реализующую и UART, и I2C, и что-то еще из последовательных интефейсов, по это было задолго до появления такой необходимости, а потому ссылку что-то найти не могу.
      Нет ли у кого что подсказать по этому поводу?

    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано pi
      #2

      wiringPi неплохая либа для работы с GPIO, я использую её
      pigpio немного сложнее, но и возможностей там больше (хотя большинству разработчиков хватит и wiringPi)
      Есть ещё пайтоновская либа Rpi.GPIO - https://pypi.org/project/RPi.GPIO/

      Программный i2c - https://electronicayciencia.github.io/wPi_soft_i2c/
      Насчёт программного UART'а в pigpio есть функция, которая открывает произвольный порт user_gpio для чтения последовательных данных (используется технология Bit-banging)

      bb_serial_read_open(user_gpio, baud, bb_bits)
      
      1 ответ Последний ответ
      0
      • piP Не в сети
        piP Не в сети
        pi
        написал в отредактировано
        #3

        cook, спасибо за подсказки! Посмотрю.

        А эти либы все к GTK прикручиваются, не знаешь?

        Программный I2C - мысль хорошая, спасибо, можно навесить несколько слейвов... 🚎

        С наступившими праздниками всех! 🙂

        1 ответ Последний ответ
        0
        • P Не в сети
          P Не в сети
          Paccmpura
          написал в отредактировано pi
          #4

          Программный I2C ...

          Кстати, а аппаратный I2C вроде ничем на малинке не занят? То есть, его можно (в отличие от аппаратного UART'а) использовать ни с чем не кнфликтуя?

          1 ответ Последний ответ
          0
          • piP Не в сети
            piP Не в сети
            pi
            написал в отредактировано pi
            #5

            @cook#6018 Есть ещё пайтоновская либа Rpi.GPIO - ...
            Программный i2c - ...

            Эх, не подошли они... 😞
            Питоновская не подойдёт, потому, что питоновская, а программный I2C не подойдёт из-за того, что он - "implementation of the I2C protocol using WiringPi library", а WiringPi уже не поддерживается... 😞

            А жаль...

            В bcm2835 есть функции работы с аппаратным I2C, может начать с этой либы? Если конечно этот интерфейс не занят чем-то системным... Кто что скажет на этот счёт? Я только про аппаратный UART такое читал...

            1 ответ Последний ответ
            0
            • piP Не в сети
              piP Не в сети
              pi
              написал в отредактировано pi
              #6

              @Paccmpura#6031 Кстати, а аппаратный I2C вроде ничем на малинке не занят? То есть, его можно (в отличие от аппаратного UART'а) использовать ни с чем не кнфликтуя?

              Да

              @Paccmpura#6032 а WiringPi уже не поддерживается..

              Ну и что?

              @Paccmpura#6032 В bcm2835 есть функции работы с аппаратным I2C, может начать с этой либы?

              Я для i2c пользуюсь i2ctools. Т.е прям из своей программы запускаю i2cset с нужными параметрами без подключения библиотек.
              Может это через жопу, но зато быстро и надёжно

              1 ответ Последний ответ
              0
              • piP Не в сети
                piP Не в сети
                pi
                написал в отредактировано pi
                #7

                @cook#6033 cook: а WiringPi уже не поддерживается..
                Ну и что?

                Да, некузяво это как-то. Вот скажем, захочу я перенести всё это хозяйство на четвёртую малинку (или на пятую) а там WiringPi работать не захочет, что тогда? Т.е., либо придется брать поддержку этой либы на себя, а мне это совсем некстати - и без неё есть чем заняться, либо перетачивать весь код, заточенный под WiringPi, под другую либу. Очень похоже на заблаговременную постановку граблей... но себе-то зачем? :о)))

                @cook#6033 cook: зато быстро и надёжно

                Насчёт "быстро" - это в плане времени на программирование? Наверное, однако, врядли время реакции меня устроит. Обмен, как сейчас представляется, д.б. быстрым, иначе NACK'и могу посыпаться...

                Ладно, пока почитаю доки на PiGPIO bcm2835, и если за это время других вариантов не наклюнется, то на них и проверю, что да как.

                Спасибо! 🙂

                1 ответ Последний ответ
                0
                • piP Не в сети
                  piP Не в сети
                  pi
                  написал в отредактировано pi
                  #8

                  @Paccmpura#6032 а WiringPi уже не поддерживается...

                  Официальный разработчик забил на либу, но энтузиасты продолжают её пилить
                  https://github.com/WiringPi/WiringPi
                  В репозитории последний коммит 20 дней назад

                  1 ответ Последний ответ
                  0
                  • piP Не в сети
                    piP Не в сети
                    pi
                    написал в отредактировано pi
                    #9

                    @nbo#6040 энтузиасты продолжают её пилить

                    Спасибо, я в курсе. Даже скачал штук 8-10 форков/копий/клонов.
                    Однако, уже само их количество вызывает определенный скепсис.
                    Есть интересный момент - WiringPi, если я правильно понял, вошла в дистрибутив Raspbian Buster! Я его еще не устанавливал, но если это окажется правдой, то тогда на ближайшие три-четыре года связность этого кода с ОСью гарантирована именно этим фактом.
                    Кстати, кто-то уже работал с Buster'ом, может подтвердить моё предположение? Ну, или опровергнуть...?

                    1 ответ Последний ответ
                    0
                    • piP Не в сети
                      piP Не в сети
                      pi
                      написал в отредактировано pi
                      #10

                      Доброго времени.
                      Вопрос собственно, как в начале темы, однако грабли, бубны и танцы осваиваю сам.
                      Не получается запустить скомпилировать прогрммку. Помогите дельным советом.
                      Малинку Pi3 осваиваю 3й день. На карте с ней была ОС от Амперки. В ней нашел Geany.
                      Стал писать на Си. Хело ворлд работает.
                      При компиляции с WiringPi компилируется без ошибки, а вот собирается с ошибкой. В папках с Либами, WiringPi присутствует.
                      Пример из инета:

                      #include <wiringPi.h>
                      #include <stdio.h>
                      int main(void)
                      {
                      printf("Start");
                      wiringPiSetup ();
                      pinMode (0, OUTPUT);
                      digitalWrite(0, HIGH);
                      delay (500);
                      digitalWrite(0, LOW);
                      delay (500);
                      return 0;
                      }
                      

                      Описание

                      Так же пробовал <bcm2835.h>, тоже самое, компилируется, не собирается.
                      Что я делаю не так?

                      1 ответ Последний ответ
                      0
                      • piP Не в сети
                        piP Не в сети
                        pi
                        написал в отредактировано pi
                        #11

                        что-то с библиотекой wiringPi. Либо компилятор её не видит, либо она косячная

                        1. Команда
                        ldconfig -p | grep "wiring"
                        

                        что выдаёт?
                        2. Попробуй скомпилировать из консоли

                        gcc -Wall -o /путь_до_Test2/Test2 /путь_до-исходника/Test2.c -lwiringPi
                        
                        1 ответ Последний ответ
                        0

                        • Войти

                        • Нет учётной записи? Зарегистрироваться

                        • Login or register to search.
                        • Первое сообщение
                          Последнее сообщение
                        0
                        • Категории
                        • Главная
                        • Документация
                        • Последние
                        • Пользователи