STM32CubeIDE (вопросы и ответы)

Предположил. Но не уверен.

С ассемблерной вставкой “nop” не должен, вроде бы. В крайнем случае в теле цикла можно инкрементировать переменную.

https://mypractic.ru/urok-24-organizaciya-korotkix-vremennyx-zaderzhek-v-stm32-biblioteka-delaydwt.html

Функция задержки с использованием DWT

#define DWT_CONTROL *(volatile unsigned long *)0xE0001000
#define SCB_DEMCR   *(volatile unsigned long *)0xE000EDFC
void DWT_Init(void)
{
    SCB_DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; // разрешаем использовать счётчик
    DWT_CONTROL |= DWT_CTRL_CYCCNTENA_Msk;   // запускаем счётчик
}
void delay_micros(uint32_t us)
{
    uint32_t us_count_tic =  us * (SystemCoreClock / 1000000); // получаем кол-во тактов за 1 мкс и умножаем на наше значение
    DWT->CYCCNT = 0U; // обнуляем счётчик
    while(DWT->CYCCNT < us_count_tic);
}
1 лайк

Помогите пожалуйста разобраться. Даже не так - !!! ПМАМАГИТИ !!!

Дернул же черт связаться с стм. Хотя увлекательно. Поэтому решил не бросать.

Пока идут платы решил установить STM32CubeIDE (v2.0.0) и STM32CubeMX (1.16.1)
Все установилось, по отдельности запускается, все хорошо. Но вот прочитал такое - что если создавать проект в IDE то в корне проекта создается файл с расширением .ioc и автоматом подгружается STM32CubeMX для конфигурации чипа.

Создаю, выбираю чип проект создается но .ioc файл не генерится и STM32CubeMX не открывается.

Почитал инет. Можно ставить STM32CubeMX двумя способами. 1 это как отдельное приложение и 2 это из STM32CubeIDE

Ставил по разному, не вызывается и все.

Еще почитал инет, нашел 2 решения проблемы. 1 это

Пробовал не помогает.

и 2 это, ну типа в STM32CubeIDE (v2.0.0) нет плагина STM32CubeMX поэтому создавай его вручную в STM32CubeMX и не парь мозги.

Но если смотреть на скрин выше то плагин STM32CubeMX в STM32CubeIDE у меня установлен, правда не 1.16 а 1.15, но это уж какой ставит система, я там выбрать не могу. Но не смотря на это не работает.

Не вопрос, могу конфигурировать и отдельно в STM32CubeMX, но тут другой вопрос, если я сконфигурировал чип в STM32CubeMX и потом пишу программу в STM32CubeIDE и мне надо что нить доконфигурировать, можно это сделать с STM32CubeMX? не попортит он уже написанный код?

Прошу совета как лучше начать работать в этих STM32Cubе?

Вот они, 100 рублей экономии :slight_smile:

Но раз интересно, то всё получится. Я как-то сунулся, несколько лет назад - “ну нафиг”

1 лайк

:rofl:

Да даже не экономии а затрат, и не 100р. Программатор купи, платы купи…
Но уж очень понравилась настройка чипа в STM32CubeMX. Надо разобраться.
Вот как научусь мигать светодиодом! Ой держитесь тогда!

короче, с версии 2.0 внутреннюю интеграцию отменили.

стираешь все к черту)
ставишь последний STM32CubeMX и уже потом последний STM32CubeIDE.

нет
юзеер свой код пишет в блоках

/* USER CODE BEGIN ...*/

/* USER CODE END ...*/

он их не трогает.

более подробно тока вечером могу…

2 лайка

Отлично, так и сделаю.

Отличная новость, благодарю. Хотел сам уже проверять, но там столько этих блоков, надо какие нить видосики от STM посмотреть с быстрым стартом. Чтоб структуру понять.

Ну рад что в этом случае лыжи не едут интеграцию отменили :slight_smile: а не ….

Ардуино ИДЕ почему бы не заюзать для простого проекта? оно вроде с СТМ32 вполне.

…посмотрел у себя: есть проектик, плата:

Generic STM32F1 → BluePill F103C8

Там енкодер, шаговик, пара моторчиков с оптическими концевиками, всё ровно работает.

1 лайк

Не понял, что такое “интеграция” , ну и # с ним. Если имеется ввиду то, что MX не “соединяется” с IDE - не правда.

Внимательно в MX “правим” камень, желательно чтобы слева по возможности были ЗЕЛЁНЫЕ галочки, желтые допустимы, красных лучше избегать.

В меню Help → Updates ставите галочки напротив нужного софта и нажимаете Install. Там можно ставить несколько версий минор-мажор и в меню CodeGenerator выбирать нужную. Выбираем в генераторе нужную нам IDE и генерим код. Если предупреждений не было - уже хорошо.

В папке workspace генерируется папка с названием проэкта и папка CubeIDE , там два проэкта на С и С++. Все inc и src создаются автоматически.

Далее MX спросит, открыть проэкт в IDE или нет, нажимаем YES. Собираем проэкт и если нет ошибок - уже хорошо.

Свой код пишем ТОЛЬКО в блоках BEGIN - END, там в комментариях всё есть. Но это нужно если вы там чОтО “мутить” собрались или использовать нестандартные подходы к инициализации камня! В стандартном виде для ВСЕХ камней генерится StartUp код, который содержит блоки инициализации стэка, копирования из PROGMEM в RAM, заполнения нулями кучи и стэка. Далее инициализация тактирования, периферии и пинов. Всё, переход в Main. Если не хотите “гемора” , желательно, но не обязательно “заинклюдить” позже уже свои с и h файлы чтобы MX случайно не затер вашу “писанину” Если нужно что-то добавить или изменить в MX - просто к готовому коду добавляете свой include и не паритесь. Это придумал не я, так делают на гите практически все.

В общем и целом всё это работает без глюков. Инструкция для дебиана, но на винде будет (наверное) так-же)))

От это нихрена себе! :frowning:
Всё что было удобно - делают не удобно? Нахуа?

ЗЫ: А я 1.Х пользуюсь. Работает и ладно. Чего обновляться за зря?!.. )))

1 лайк

а мне удобнее как сейчас, когда в проекте тыкаешь по ioc и просто зовется CubeMX как приложение, а не в новой вкладке проекта как OLE какое то, глючил интерфейс да и места в окошке маловато было, вечно щуришься))
да, еще IDE задалбливало с предложением пересобрать проект.

1 лайк

В общем посидел потыкал. Пока чипа нет, вроде всё понятно. Придёт только в январе. Буду пробовать программировать, там видимо дополнительные проблемы всплывут.

На озоне два дня! блю черный синий красный орагжевый. Или мошт ты на северном полюсе в палатке?

На южном :rofl:

А ты плату где заказывал? Надо от WeAct брать, на ней чипы оригинальные стоят и отладка работает в кубе.

2 лайка

От них и взял.

2 лайка

Веакт есть на озоне, сегодня Н5 приехол с кортекс-33 … Не знаю, чо с ним делать. ДВА дня, регион, 700 ки от мск…

Да, на озон есть.
Например, вот блюпилл: https://www.ozon.ru/product/stm32f103c8t6-stm32-bluepill-plus-sinyaya-tabletka-stm32-originalnaya-1583836856/

Ну вот пришли все STM, и подешевле и подороже.
Взял такой наборчик - https://aliexpress.ru/item/1005007309682909.html?spm=a2g2w.orderdetail.0.0.213e4aa6lkLCBO&sku_id=12000043387078426 работает. И еще пару STM32F103C8T6 в этом же магазине.
Так же взял https://aliexpress.ru/item/1005005303809188.html и платы STM32G030 и STM32G031.

Светодиодом помигал, TM1637 подключил, работает. В общем STM понравились, буду ваять контроллер насоса как и хотел.

1 лайк