LLL хорош тем, что читая код ты понимаешь что там написано, а не пытаешься вспомнить за что этот регистр отвечает. При этом код весьма лаконичен и по человечески все функции названы. А что самое класное что внутри почти все на макросах/дефайнах и через inline функции сделано. Считай скомпиленый код практически такой же получится как будто ты на cmsis писал
Комментарии: 9
Coba
Да, все так, кроме того что обращение к регистру для записи происходит не за один раз а разбито этими самыми макросами
Toha
ну сразу много нужно писать только при инициализации, в процессе самой работы как раз по одному параметру обычно и меняется если прям очень кретично то можно и напряму в регистр записать Тут еще дело в сложности конфигурации. Если нужно жпио настроить то можно и на регистрах, а если нужно сложное поведение таймера с тригерами на жпио и прерывания настроить, то код этот читать без коментариев потом не реально. А с LLL оно само все читается и сразу понятно. На практике столкнулся, было сначала на регистрах потом на LLL переписал
Coba
Да lll норм, совместно с кубом, без куба не вижу каких то плюсов относительно cmsis
Toha
Пример чего именно? Если кишочек LLL, то вот например пример функции настройки режима жпио __STATIC_INLINE void LL_GPIO_SetPinMode(GPIO_TypeDef *GPIOx, uint32_t Pin, uint32_t Mode) { MODIFY_REG(GPIOx->MODER, (GPIO_MODER_MODER0 << (POSITION_VAL(Pin) * 2U)), (Mode << (POSITION_VAL(Pin) * 2U))); } Если пользовательского кода то что то типа такого gpio.Pin = BQ24155_ISEL_PIN; gpio.Mode = LL_GPIO_MODE_OUTPUT; gpio.OutputType = LL_GPIO_OUTPUT_PUSHPULL; gpio.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH; gpio.Alternate = LL_GPIO_AF_0; LL_GPIO_Init(BQ24155_PORT, &gpio); LL_GPIO_SetOutputPin(BQ24155_PORT, BQ24155_ISEL_PIN); Мне кажется с ходу понятно что происходит) ХЗ, кубом пользуюсь как наглядной тыкалкой, что бы увидеть какая перефирия куда выведена и как тактирование настроить
Andrey
Что то знакомое
Toha
Код выходит как бы самодокументированым
Anton
Ребят, а как вам такая магия? https://github.com/a-sv/lmcu/blob/testing/examples/STM32/F103/gpio/src/main.cc
Andrey
Покажи пример
Coba
Вобщем, холивар он такой, бессмысленный и беспрщадный