Перейти к содержанию

Начинаю пользоваться связкой STM32CubeMX + IAR. Есть ли какой-то справочник по функциям?


rmatveev

Рекомендуемые сообщения

Друзья, делаю свои первые шаги на пути освоения STM32.

Приобрел STM32F0DISCOVERY, скачал STM32CubeMX и бесплатную версию IAR (на 32К кода).

Дискавери я подключил к компу, скачал с сайта ST примеры (в их числе и ту мигалку, которая была в дискавери после покупки). Все шьется, все работает.

Однако, когда дело доходит до того что бы писать что-то самому, я что-то уперся в непонимание. Начну с того, что я даже не знаю как управлять состоянием ножки. Или как, например, вызвать процедуру задержки.

Понятно, что все это я могу найти в примерах и повторить по аналогии. Но что-то мне кажется что это не путь Джедая и хорошо бы иметь некий справочник. Пока все что я нашел - это Description of STM32F0xx HAL and Low-layer drivers - довольно объемный (1300 стр) документ, как раз, казалось бы, то что мне нужно - справочник по HAL.

Но хотелось бы что-то типа справочника как это есть для того же PHP (если кто знает) - например, хочу вычислять CRC16 - просто набираю в поисковике "php crc16" и вуаля: куча стандартных функций или ссылок на сторонние решения на гитхабе (как пример). У того же PHP есть замечательный сайт с замечательным поиском.

Пока ничего подобного для IAR для ARM я не нашел.

 

В общем, я был бы очень благодарен за полезные ссылки по сабжу!

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

За примерами ходить далеко не надо, они уже все есть у вас на компе. Лежат в папке c:\users\[user]\stm32cube\repository\[libname]\projects

Там на каждый чих пример разжованый до атомов.

22 минуты назад, rmatveev сказал:

Начну с того, что я даже не знаю как управлять состоянием ножки

это очень просто. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);

есть еще ReadPin и TogglePin. Ваша мануалка на стр. 210

22 минуты назад, rmatveev сказал:

Или как, например, вызвать процедуру задержки.

тоже элементарно HALDelay([ms]);

Мануалку проще всего читать по разделам, если сбоку в ридере отобразить закладки там будет прям по модулям скомпоновано. Выбираем нужный и читаем то что к нему относится. Инитку обычно пропускаем, так как она генерится автоматически кубом и переходим сразу к разделу функций. После функций идут обычно определения имен того, что нужно подставлять в функции в качестве аргументов (экспортируемые макросы), но проще и быстрее их обычно смотреть непосредственно в заголовочном файле библиотеки.

22 минуты назад, rmatveev сказал:

Приобрел STM32F0DISCOVERY

очень правильная платка для начала освоения STM. Там по моему F051 стоит. Можно отработать все что угодно и без проблем потом работать хоть на F100, хоть на F400 камнях. Только есть небольшие нюансы в работе ДМА и АЦП

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Т.е. правильный путь - это будет все-таки использование того 1300 стр. документа?

А я правильно понимаю, что для STM32 по сути можно писать на трех уровнях:

1) обращаясь непосредственно к регистрам (это как раз то, что я всегда делал для AVR)

2) используя HAL

3) видимо, еще есть RTOS, но я думаю что у меня пока задачи не того уровня.

Ссылка на комментарий
Поделиться на другие сайты

Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

да, все верно. Можно пользоваться любым из этих уровней. Но правильнее будет все таки HAL. Многие меня считают фанатиком за такое мнение, но я его не навязываю особо. Пользуйте что нравится. На скорость кода это если и влияет, то микроскопически. Вообще разговоры о скорости кода на STM32... по моему глупости. Так как эта пушка прожует любой быдлокод со скоростью мясорубки с реактивным двигателем

7 минут назад, rmatveev сказал:

Т.е. правильный путь - это будет все-таки использование того 1300 стр. документа?

да. В совокупности с примерами информации там по любому вопросу более чем достаточно. Я из него максимум 30% пока только использовал и хватало на все. Такой же документ есть для любого семейства STM32. По большей части код на НАL будет совместим при переносе с камня на камень. А в пределах семейства переносится вообще без изменений. То что вы отладите на 051 спокойно переедет и на 030 и на 070 без изменений. Главное не писать там под несуществующие модули. Если набор используемых модулей и ног совпадет и частоту ядра менять не будете, то переезд кода будет идеальным.

9 минут назад, rmatveev сказал:

3) видимо, еще есть RTOS, но я думаю что у меня пока задачи не того уровня.

на самом деле RTOS это проще простого. Почитайте тут http://microsin.net/programming/arm/freertos-part1.html

и эту ветку, где мы этот вопрос обсуждали.

там на последних страницах как раз обсуждение понятия ОС для STM

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

  • 2 недели спустя...

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

@mail_robot , хочу все же высказкться насчёт HAL. Штука, бесспорно, полезная; сейчас поднимаю USB и без неё никуда. Но есть ложка дегдя, и не маленькая - это производительность. Пример: надо снять кучу выборок сигнала АЦПшкой. Если через вызов функции библиотечной  забирать - то получается раза в два медленнее, чем напрямую работать с регистрами. Пробовал и HAL, и stdperiph.

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

а если забирать при помощи ДМА? Обычно все так и делают, если надо сделать кучу выборок

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

Не получается, в зависимости от последнего показания принимается решение о следующем действии. 

Я пример этот привел именно как иллюстрацию потери быстродействия.

Ссылка на комментарий
Поделиться на другие сайты

Вообще владеть желательно всеми доступными инструментами, тогда можно выбирать из них лучший под конкретную задачу. В тот же код на HAL можно абсолютно спокойно делать вставки на прямых обращениях к регистрам, там где необходимо критическое быстродействие. Но писать весь код на регистровых командах это либо надо комментировать все подряд и почаще, либо считай пишешь на один раз и только для себя.

Есть еще способ грамотно использовать HAL. Можно просто скопировать тело функции из библиотеки. Выдрать из нее все лишнее, типа проверок, ассертов, и прочей универсально-мудрой мутатени и получить по сути чистый регистровый код без особых напрягов. Почитайте код тел, будет понятно о чем я. Так местами просто быстрее будет и ошибок меньше. А инитка на быстродействие не влияет

Если для проекта делается копия библиотек, то можно вообще прямо в библиотеках код править под себя так как хочется. Только в коде пометки делать рядом с кастомной функцией. Или добавить в имя символ _с. Чтобы видно было, что тело не стандарт. Это чуть сложнее, но зато код не теряет читабельности. Самодокументируемость HAL желательно не терять. Это один из его основных плюсов.

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

del

Изменено пользователем ART_ME
del

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...