Как использовать драйверы LL (низкого уровня) в CubeMX STM32?

Я создаю пустой проект для микроконтроллера STM32F103 с помощью STM32CubeMX. Используя драйверы HAL (по умолчанию), я получил быстрый пример, работающий довольно быстро, но я хотел бы попробовать драйверы LL (низкого уровня) вместо HAL.

Когда я перехожу в «Проект»> «Настройки»> «Дополнительные настройки» в CubeMX, я вижу перечисленные периферийные устройства, и рядом с каждым из них есть раскрывающийся список, в котором есть только одна опция - HAL. Согласно документации, здесь я мог выбрать LL или HAL для каждого периферийного устройства.

Как включить драйверы LL в STM32CubeMX?

Подробности: я произвел чистую установку STM32CubeMX (4.23.0) на Ubuntu (16.04) и создал новый проект для микроконтроллера STM32F103C8 (это на плате "Blue Pill"). Я использую SW4STM32 IDE, все более или менее работало из коробки, за исключением того, что мне пришлось выбрать STLink V2 вместо V2.1 в файле конфигурации.


person Alex I    schedule 26.12.2017    source источник
comment
Вместо этого используйте голые регистры. Забудьте об этих библиотеках. Вам не нужно ничего включать. Просто используйте функции ll.   -  person 0___________    schedule 26.12.2017
comment
Эта информация в руководстве STM32CubeMX не соответствует действительности, если речь идет о серии F0. Мне удалось сгенерировать драйверы LL для STM32F030F4P6 (еще один дешевый MCU).   -  person Bogdan Golab    schedule 30.12.2017
comment
Проверьте последнее обновление Cube, теперь включена поддержка LL для F1   -  person Almaz    schedule 02.02.2018


Ответы (2)


В настоящее время (STM32CubeMX v4.23.0) драйверы LL создаются только для серий L1, L4, F2, F4, F7. См. Главу 6.2 Генерация кода STM32Cube с использованием драйверов нижнего уровня. Для серий STM32L1, STM32L4, STM32L4 +, STM32F2, STM32F4 и STM32F7 STM32CubeMX позволяет сгенерировать код инициализации периферийных устройств на основе либо периферийного драйвера HAL, либо периферийного драйвера низкого уровня (LL).

http://www.st.com/content/ccc/resource/technical/document/user_manual/10/c5/1a/43/3a/70/43/7d/DM00104712.pdf/files/DM00104712.pdf/jcr:content/translations/en.DM00104712.pdf

person Bogdan Golab    schedule 30.12.2017
comment
С последним обновлением Cube в ST добавлена ​​поддержка библиотеки LL и для семейства F1. - person Almaz; 02.02.2018
comment
По крайней мере, в версии 4.25.1 я также могу генерировать инициализации LL для микроконтроллеров серии L0. - person vanthome; 13.05.2018

из менеджера проекта в расширенных настройках в селекторе драйверов вы можете изменить HAL на LL для всех периферийных устройств

person Bedoo00    schedule 07.03.2019
comment
Хотя там перечислены не все периферийные устройства. Например, драйвер внешнего прерывания не указан, поэтому не может быть установлен на LL, даже если stm32g4xx_ll_exti.h присутствует в папке драйверов. - person DarkFranX; 12.03.2020