Как я могу переписать код Arduino, используя библиотеку SPI, на С++?
Проблема в том, что у меня есть код, использующий библиотеку Arduino, и мне нужно преобразовать его в C++, чтобы я мог использовать его с raspberry pi в ROS (операционная система для роботов). Кто-нибудь знает лучший способ изменить его или знает хорошие ресурсы?
Я знаю, что Arduino — это, по сути, C++, но не знаю, как преобразовать библиотеки Arduino в C++.
@Ally, 👍-1
Обсуждение2 ответа
Иногда называемый «языком Arduino» — это C++, но с некоторыми предварительными работами, в первую очередь с добавлением файлов, которые выполняются за вас, если вы этого не сделаете.
Компилятор Arduino — это компилятор GNU C++. Если вы напишете или предоставите стандартный C++ для Arduino IDE, он скомпилирует его.
Компилятор Arduino является компилятором GNU C++, ОДНАКО в нем нет библиотеки времени выполнения c (которая не является частью компилятора).
Возможно, более важным для вопроса является то, что компилятор Arduino обеспечивает поддержку оборудования ATMEL. Это несовместимо с Raspberry Pi.
Arduino представляет собой микроконтроллер реального времени и имеет неограниченный доступ к своему оборудованию, Pi обычно работает под управлением многозадачной ОС, аппаратное обеспечение недоступно напрямую из пользовательского пространства, поэтому многие задачи нужно писать по-другому; часто это означает полагаться на поставляемый с ОС драйвер ядра.
Любая практическая программа Arduino потребует значительных изменений для работы на Raspberry Pi. Затраченных усилий, вероятно, будет больше, чем написание программы Raspberry Pi с нуля.
- C++ против языка Arduino?
- Как использовать SPI на Arduino?
- ошибка: ожидаемое первичное выражение перед токеном ','
- Ввести идентификатор чипа ESP32 в строковую переменную (новичок в Arduino/C++)
- Передача функции-члена класса в качестве аргумента
- Улучшенное циклическое переключение цветов RGB.
- Какие есть другие IDE для Arduino?
- Несовместимые типы при назначении «uint8_t {aka unsigned char}» на «uint8_t [1] {aka unsigned char [1]}»
Библиотеки Arduino уже написаны на C++., @Majenko
Спасибо! То есть мне не нужно ничего переписывать, чтобы использовать код Arduino на C++? Или мне просто нужно называть библиотеку по-другому?, @Ally
В зависимости от библиотеки вам может потребоваться повторно реализовать стандартные вызовы API Arduino, такие как digitalWrite и т. д. Или просто реализовать свои собственные копии любых необходимых функций, используя то, что предоставляет ROS., @Majenko
API Arduino — это просто набор функций и классов C++. Если библиотеке нужна одна из этих функций или классов, просто реализуйте ее (если ROS еще не предоставляет ее. Не знаю, что или кто такое ROS)., @Majenko
Хорошо, это помогает. Я пытаюсь понять различия между Arduino и общим С++. (ROS — это операционная система для роботов, которая работает только в Linux, поэтому Arduino не работает с ней, поэтому я преобразовываю код для работы с ней на Rasberry pi)., @Ally