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

Начинаю пользоваться связкой 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, но я думаю что у меня пока задачи не того уровня.

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

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 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

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

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

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

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

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

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

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

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

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

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

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

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

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

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

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

Вообще владеть желательно всеми доступными инструментами, тогда можно выбирать из них лучший под конкретную задачу. В тот же код на 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 пользователей онлайн

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

    • Капрон тоже от смачивания удлиняется.
    • ..так вы практически нашли неисправность  -  неисправен предварительный усилитель.. советую оба этих усилителя (предварительных) в мусорку, т.к. регуляторы тембра на современном усилителе не нужны.. в этих усилках слишком много всякой ненужной коммутации, переходных кондеров, лишних ОУ и т.п. ..  как говорят аудиофилы - слишком длинный путь звука.. все это ОЧЕНЬ портит качество звука..  замените эти предварительные усилители на что то современное.. 
    • @минздрав, таки не зря полез переделывать, при ближайшем рассмотрении обнаружилась вот такая ситуация (причём фактически только присутствующий на фотографии кусочек удалось обнаружить, остальных словно бы и вовсе не было при выпайке, делал аккуратно и щаметил бы): Возможно, супер «Флюс-паста BTC», то ли перегрев (очень маловероятно) вызвали разрушение. Поскольку режимы работы устройства я не проверял, пока каких-либо повреждений не последовало. Вы могли бы подсказать, как называется даная контактная площадка (термин, не типоразмер) и насколько критично такое положение вещей? Припой цепляется только лишь за контактные усики конденсатора, но не за саму плату. Сейчас всё спаяно на ЛТИ-120 Lux (водорастфоримая флюс-канифоль) и замыто спиртом (более-менее чистой канифоли в моём рабоем посёлке не оказалось, взял меньшее из зол). Завтра должен приехать токопроводящий клей, если это может помочь. @AlexeyStudent, благодарю за ликбез!
    • Тоже не вижу смысла ходить в туалет или на балкон покурить с андроидом,он у меня чисто позвонить/ответить на звонок,иногда посмотреть тик-ток Да и сборка подобных устройств развивает мозг,мышление,вникаешь в принцип работы устройства,не то что тупое скачивание таймера из сети с кучей навязчивой рекламы и т д 
    • Если сделать как я написал, найдется узел, на вход которого приходит правильное напряжение, а выходит из которого заниженное. Вот в нём и нужно будет разбираться. Найдите сначала это место, из-за которого вместо 11 вольт приходит 9.
    • Задание ваше - строго по вашей специальности. Вас учат находить надлежащую информацию. Надо было разобраться в сути вопроса, выделить оновные моменты, из них вычленить требующие выяснения, и задать выдавшему задание (надлежащему человеку) уточняющие вопросы. Как минимум, спросить, с какой скоростью должна меняться информация на выходе этого устройства, поддерживаться автономно с какой-то точностью (с какой?), или скорость должна устанавливаться внешним сигналом, т.е. должно быть ваше устройство генератором или функциональным преобразователем.   А вы бросились у дилетантов в области администрирования ИС спрашивать какие-то схемотехнические решения... Как можно бросаться администрировать ИС, не зная, что от неё требуется?!
×
×
  • Создать...