STM32CubeMX — це графічний інструмент, який дозволяє конфігурувати мікроконтролери STM32 та генерувати первинний код ініціалізації. У цій статті створимо свій перший проект на мікроконтролері STM32F103.
Для завантаження STM32CubeMX перейдіть на офіційний сайт ST. Потрібно пройти реєстрацію та обрати програму для своєї операційної системи. Після завантаження встановіть програму.
У стартовому вікні потрібно вибрати один з варіантів:
- Open Existing Projects
- Start My project from MCU
- Start My project from ST Board
- Start My project from Example
Open Existing Projects – відкриває проект із вже наявних, новостворені пректи будуть тут з’являтись автоматично для швидкого доступу.
Start My project from MCU – відчиняє вікно в якому потрібно обрати мікропроцесор. Пошук потрібної моделі по Part Number або вибір по критеріях таких як пам’ять, інтерфейси, напруга живлення, споживання, кількість I/O (Input – вхід, Output – вихід ).
Start My project from ST Board – відчиняє вікно в якому потрібно обрати плату розробки від ST, таких як Discovery Nucleo Evalution Starter, в різних їх варіантах.
Start My project from Example – відчиняє вікно вибору прикладів під різні плати та мікропроцесори.
Створення проету на на STM32F103
У вікні MCU selector, в полі Part Number вводимо STM32F103C8T6, так як він використовується у Blue Pill платі на прикладі якої ми будем працювати.
Сторінка STM32F103 на офіційному сайті, де міститься вся інформація про MCU.
Таблиця маркування для STM32F103
Обравши мікроконтролер натисніть Start Project у верхньому правому кутку.
Перше вікно Pinout & Configuration
У правому вікні натиснувши на потрібний вивід задається його функціонал.
Також у лівому меню налаштовується як виводи, так і додаткові конфігурації.
Першим кроком ми увімкнемо Serial Wire у меню SYS, для можливості програмування та налагоджування за допомогою STLink.
Наступним кроком потрібно задати тактовий генератор, за умовчанням використовується внутрішній генератор з частотою 8Mhz. На нашій платі Plue pill використовуються зовнішній генератор на 16Mhz. Тому у вікні High Speed Clock (HSE) ми обираємо Crystal/Ceramic Resonator. У вікні Configuration -> Parameter Settings -> RCC Parameters, значення поля HSI Calibration Value має збігатися з нашим, тобто 16Mhz.
В процесі конфігурації в графічному інтерфейсі будуть відображатися внесені зміни.
У вкладці Clock Configuration налаштовується тактовий генератор та подільники частоти для різних шин.
Більше детально про налаштування Clock Configuration.
Project Manager
У вкладці Project Manager основні налаштування проекту.
У меню Project потрібно задати ім’я проекту, та місце збереження. Toolchain / IDE вибираєм IDE з якою будем працювати, ми обираємо makefile (універсальний). Інші налаштування залишаємо за умовчанням.
Для STM32CubeIDE – потрібно обрати STM32CubeIDE.
Для IDE IAR – потрібно обрати EWARM.
Для IDE Keil- MDK-ARM
При виборі Makefile генеруються базові файли, прошивка в цьому випадку компілюється за допомогою Make файлів, також даний варіант універсальний та з додатковими налаштуваннями може застосовуватись майже з будьякою IDE.
Code Generator
Перше меню дозволяє обрати файли які будуть додані до проекту, обираємо ‘Copy only the necessary files’ додати до проекту тільки необхідні файли.
У меню Generated files:
- Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral – дозволяє генерувати окремі файли ‘.h’ заголовки та ‘.c’ основний код.
- Backup previously generated files when re-generating – при обраній опції старіший код при повторній генерації зберігається в окрему теку.
- Keep User Code when re-generating – дозволяє зберігати код користувача внесений вручну через IDE при повторній генерації.
- Delete previously generated files when not re-generated – видаляються файли попередньо згенеровані файли які більше не використовуються.
Цих базових налаштувань достатньо для створення першого проекту.
Після завершення налатування у верхньому правому кутку натисніть ‘GENERATE CODE’.
Запуск згенерованого проекту за допомогою VS-Code та PlatformIO