Цель данного курса дать студентам базовое понимание устройства и принципов работы с микроконтроллером STM32F051.
STM32 — семейство 32-битных микроконтроллеров производства STMicroelectronics. Чипы STM32 группируются в серии, в рамках каждой из которых используется одно и то же 32-битное ядро ARM, например, Cortex-M7F, Cortex-M4F, Cortex-M3, Cortex-M0+ или Cortex-M0. Каждый микроконтроллер состоит из ядра процессора, статической RAM-памяти, флеш-памяти, отладочного и различных периферийных интерфейсов. В этом курсе будет вестись изучение микроконтроллера STM32F051 с ядром Cortex-M0.
В интернете существует большое количество курсов по STM32, но большинство из них учит управлять микроконтроллером, использую библиотеки высокого уровня. Данный подход сильно ускоряет разработку приложений, но имеет большой минус. После такого программирования студентам соверешенно не понятно, что происходит "под капотом" микроконтроллера. Первая серьезная ошибка, требующая понимание языка ассемлера или линкер-скрипта, мгновенно ставит программиста в тупик.
Этот курс нацелен на низкоуровневое программирование микроконтроллера. После успешного прохождения курса студенты смогут писать код для STM32 как с помощью библиотек высокого уровня, так и без них. Студенты научатся ориентироваться в документациях к микроконтроллерам, размер которых часто превышает тысячу страниц. Студент будет понимать, каким образом код попадает в микроконтроллер и как происходит его выполнение.
Весь код курса разработан под отладочную плату STM32F051 Discovery. Предполагается, что участники курса имеют доступ к данной плате. Также предполагается, что у студентов есть доступ к машине с операционной системой Linux.
Курс ориентирован на людей, которые никогда не программировали микроконтроллер или программировали при помощи библиотек высокого уровня, например, библиотеки для Arduino. Для безболезненного и результативного прохождения курса студентам необходимо обладать следующими знаниями и навыками:
- Уверенное программирование на языке Си;
- Владение операционной система Linux (предпочтительно) или macOS (допустимо);
- Базовые знания по архитектуре процессора и языку ассемблера.
- Устройство STM32. Необходимый минимум программ для программирования STM32. Минимальный пример кода под STM32F051. Управление светодиодами.
- Работа с GPIO. Управление кнопкой.
- Прерывания и таймеры. Настройка таймера SysTick.
- Работа протокола USART. Общение микроконтроллера и компьютера.
Данный курс построен на основе курса по STM32 Эдгара Казиахмедова.