Pull to refresh
31
0
Send message

Умная розетка не помогла бы? :)

А в целом это все зачем? Дистанционно это делать, типа радио-пульта ДУ?

В общем, хотелось бы автора услышать.

Ну если все работало на Arduino Uno, то непонятно, зачем вообще было с него переходить. Если габариты платы не устраивают, есть еще Arduino Pro Micro и прочие небольших размеров.

В целом я с замечаниями согласен, статью можно было бы получше оформить, как минимум. Если целью перехода было - просто освоение STM32, об этом тоже стоило бы написать.

А в чем отличия?

процесс запуска NRF24L01 в связке со STM32F1

Можно подробнее про решаемую задачу? Что эта связка должна делать?

Для начинающих, кто думает о переходе с Arduino Uno на STM32, вполне годная статья, кмк.

Другое дело, что я, например, не понял постановку задачи. Что за передатчик, приемник, и что оно все вместе должно делать?

Там пакрафт был просто двухместный, у него длина такая, что прекрасно и не складной велик помещается. Насчет "посмотреть больше красот" - кому-то наоборот, хочется, чтобы красоты не так быстро мимо пролетали.

Я сплавлялся разок на байдарке - все хорошо, но процесс сборки долгий и сложный по сравнению с пакрафтом, а про ее вес я вообще молчу, тащить ее на себе было то еще удовольствие.

Про Волгу и ветер понятно.

Раз пакрафты существуют, значит, они кому-то нужны?

Так ли всем нужна скорость? Одно дело - соревнования, а если это все - просто ради прогулок и отдыха? Видел видеоролики, в которых человек едет на велике по области с пакрафтом, потом доезжает до речки, надувает пакрафт и в него прямо с великом погружается и плывет. С байдаркой такое вряд ли прокатит, кмк. Она еще и менее устойчива, да и узкая.

Разве тема сканирования кинопленок не была закрыта уже лет 20 назад?

Что-то я ничего ни в одном из каментов не понял :)

Понял. Собственно, после установки libpng с помощью vcpkg имеется файл usage:

installed\x64-windows-static\share\libpng\usage

И в нем написано, как подшивать библиотеку в CMakeLists.txt:

The package libpng is compatible with built-in CMake targets:

    find_package(PNG REQUIRED)
    target_link_libraries(main PRIVATE PNG::PNG)

Здесь вместо main лучше подставить ${PROJECT_NAME}

Но под Windows надо ещё догадаться, что нужны ещё вот такие строки:

if(WIN32)
find_path(PNG_INCLUDE_DIR PNG)
target_include_directories(${PROJECT_NAME} PRIVATE ${PNG_INCLUDE_DIR})
endif(WIN32)

И с каждой библиотекой приходится танцы с бубном устраивать, чтобы понять, что именно надо включить в CMakeLists.txt, чтобы библиотека подшилась. К сожалению, файл вроде usage есть далеко не для всех библиотек.

А еще, если библиотека не header only, она под Windows статически обычно не подшивается. Конкретно для PNG после сборки рядом с EXE-файлом ещё оказываются libpng16.dll и zlib1.dll - не подскажете, как добиться того, чтобы они статически прилинковались в исполняемый файл?

glob вполне хорош, но надо хорошо понимать, какие последствия могут вылезти в определенных случаях. И, что плохо, вылезти они могут далеко не сразу.

Спасибо. Про совет 3 можно подробнее - что имеется ввиду?

Вопрос у меня был, в основном, про эти два момента:

target_include_directories(${PROJECT_NAME} PUBLIC ${GLEW_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} SDL3-static)

Как, в общем случае, догадаться при подключении сторонних библиотек, что нужно подставить в качестве ${GLEW_INCLUDE_DIRS} в target_include_directories и SDL3-static в target_link_libraries? Иногда приходится кучи вариантов чуть ли не наугад перебирать, если в README ничего не написано, либо что-то написано, но не работает.

У каких-то библиотек есть файл .cmake, у каких-то нет, и вообще возможны самые разные варианты.

Для тех, кому это действительно интересно, оно и сейчас вполне актуально.

Надо сразу взять Xilinx Spartan и реализовать на нём всё, как создатели ZX Spectrum Next сделали :-) Правда, из-за дороговизны и дефицита в последних реализациях они на другой FPGA перешли.

<library_target> - это цель, которую создала библиотека. Её можно найти в примерах использования библиотеки, в README.md (там вообще можно много найти) или в CMakeLists.txt. В последнем случае надо искать строки вида add_library(<library_target> ...).

Есть ли где-нибудь набор полезных советов на эту тему?

Не раз уже сталкивался с ситуациями, что то, что надо указать в качестве library_target, почему-то не соответствует тому, что приводится в readme (возможно, там информация просто устаревшая), и приходится гуглить, как именно подключить библиотеку в CMakeLists.txt. И даже это не всегда помогает - зачастую находятся советы и примеры использования только 10-летней давности, которые уже не работают.

Причем, бывает, что под Linux всё собирается, а под Windows в MSVC нет.

Information

Rating
Does not participate
Registered
Activity