Как использовать LL (низкоуровневые) драйверы в CubeMX STM32?
Я создаю пустой проект для микроконтроллера STM32F103 с использованием STM32CubeMX. Используя драйверы HAL (по умолчанию), я получил довольно быстрый пример, но я хотел бы попробовать драйверы LL (низкого уровня) вместо HAL.
Когда я захожу в "Проект"> "Настройки"> "Дополнительные параметры" в CubeMX, я вижу периферийные устройства в списке, и рядом с каждым из них есть раскрывающийся список, который имеет только одну опцию, HAL. Согласно документации, здесь я мог выбрать LL или HAL для каждого периферийного устройства.
Как включить драйверы LL в STM32CubeMX?
Подробности: я сделал чистую установку STM32CubeMX (4.23.0) в Ubuntu (16.04) и создал новый проект для микроконтроллера STM32F103C8 (это на плате "Blue Pill"). Я использую IDE SW4STM32, все более или менее работало из коробки, за исключением того, что мне пришлось выбрать STLink V2 вместо V2.1 в файле конфигурации.
2 ответа
В настоящее время (STM32CubeMX v4.23.0) драйверы LL генерируются только для серий L1, L4, F2, F4, F7. См. Главу 6.2 Генерация кода STM32Cube с использованием драйверов нижнего уровня. Для STM32L1, STM32L4, STM32L4+, STM32F2, STM32F4 и серий STM32F7, STM32CubeMX позволяет генерировать периферийный код инициализации на основе либо периферийного драйвера HAL, либо периферийного драйвера нижнего уровня (LL).
Из менеджера проекта в расширенной настройке из селектора драйверов вы можете изменить HAL на LL для всех периферийных устройств
Эта информация в руководстве STM32CubeMX не соответствует действительности, если речь идет о серии F0. Я был в состоянии генерировать драйверы LL для STM32F030F4P6 (другой дешевый MCU).