Использование библиотек Arduino с микроконтроллером на базе ARM
Неделю назад я начал возиться с LoRa. Я получил свой комплект STM32L151 IM880A.
Компания, предоставившая чип модема SX1272 LoRa (используемый в комплекте), предоставила некоторые библиотеки, но многие функции все еще не реализованы и по-прежнему не подходят для использования в нескольких P2P-приложениях.
Погуглив, я наткнулся на компанию Libelium, которая использовала чип SX1272 в конструкции своих продуктов и предоставила полезный набор библиотеки, которые предоставляют множество функций, а также реализуют своего рода стек протоколов кадров LoRa, идеально подходящий для использования в приложениях P2P.
Проблема в том, что я использую в своем проекте STM32, а библиотеки Libelium написаны для Arduino. Поэтому мне было интересно, есть ли разумный способ портировать библиотеки Arduino, чтобы я мог использовать их в своих проектах STM32 Keil, поскольку библиотеки кажутся огромными.
Советы, подсказки и ссылки будут признательны (у меня нет опыта использования Arduino и я не знаком со структурой библиотеки Arduino).
@spasoye, 👍0
Обсуждение2 ответа
Каждый раз, работая над проектом, я использую библиотеки Arduino и портирую их на свой микроконтроллер. Я использовал текстовый редактор sublime с множественным выбором и редактированием (ctrl-d). Затем я копирую код arduino в sublime и мою uC IDE, затем компилирую его в IDE, прокручиваю до первой неопределенной функции и добавляю ее определение в код или изменяю его с помощью множественного редактирования и выбора sublime (например, цифровое чтение и запись, по моему мнению, бесполезны). После этого обновляю файл в вашей IDE и снова компилирую.
Вы будете делать это, пока не закончите, и это займет некоторое время.
Поэтому мне стало интересно, есть ли разумный способ портировать библиотеки Arduino, чтобы я мог использовать их в своих проектах STM32 Keil, поскольку библиотеки кажутся огромными.
Да. порт STM32 arduino использует GCC, который не сильно отличается от MDK или ADS - я портировал довольно много туда-сюда из GCC <-> MDK, и один из GCC в ADS. Если код написан хорошо, во многих случаях все, что вам нужно сделать, это изменить части кода, связанные с isr (несколько имен) и нажать перекомпилировать.
- Как получить исходные файлы для библиотек Arduino?
- Ошибка: "недопустимое использование нестатической функции-члена" при вызове функции из моего собственного класса-метода
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Существуют ли библиотеки сглаживания сигналов для Arduino?
- Wire.h не найден!
- Библиотека FastLED: Как настроить яркость одного пикселя в абсолютном масштабе?
- Как эта строка кода определяет, подключен ли последовательный интерфейс?
- Ошибка Specified folder/zip file does not contain a valid library
Вы можете использовать программное обеспечение Arduino на STM32: http://jeelabs.org/book/1545d/, @JimmyB
Ардуино использовать не хочу, просто хочу узнать, можно ли портировать библиотеки и насколько это удобно., @spasoye
Хорошо, теперь я хочу избавить себя от боли при портировании/отладке. Мне было интересно, есть ли доступный стек, который работает на радиоуровне LoRa (не реализует LoRaWAN), что позволит мне назначить какой-то ID/NODE_ADDR каждому узлу и иметь возможность устанавливать соединение между ними, поэтому P2P-связь?, @spasoye