Продолжаем тему таймеров в STM32. В прошлый раз мы рассмотрели базовые таймеры, которые довольно-таки просты. Но сегодня мы поиграемся с более крутой игрушкой — таймерами общего назначения, которые на голову выше предыдущих.
Всё-таки, меня всегда умиляло название «таймер» для этих сложных штук в микроконтроллерах. Шутка ли: кроме срабатывания в строго заданный интервал, они имеют ещё до десятка дополнительных функций типа генерации ШИМ и подсчёта входящих импульсов. В микроконтроллерах STM32 таймеры настолько круты, что я посчитал нужным разбить их описание на несколько статей.
Думаю, пришло время окинуть взглядом архитектуру ARM Cortex-M3 в целом и конкретно STM32, потому что это важно для понимания многих особенностей работы этих микроконтроллеров в будущем — например, тактирование и принцип работы DMA. Прежде, чем приниматься за более сложные темы, мы изучим внутренности МК и их взаимодействие друг с другом.
GPIO (General Purpose Input-Output) — это выводы общего назначения, ноги микроконтроллера, доступные для прямого управления. Это обычно довольно дефицитный ресурс во многих популярных МК, но с STM32 эта проблема теряет актуальность: в самом мелком корпусе (LQFP48) доступно 37 GPIO, а в самом большом (LQFP176) — 140 GPIO. И всё это богатство ещё и настраивается вдоль и поперёк. Но, обо всём по порядку.
При работе с микроконтроллерами STM32, и не только с ними, часто нужно заглядывать в документацию, чтобы найти какие-либо сведения (captain mode on). Для продуктивной работы с ней нужно хорошо представлять себе, где её найти, а также где в ней найти нужную информацию. Вот об этом я вам и расскажу.
В прошлой статье мы настроили IDE, и теперь просто обязаны испытать STM32 в деле. Этот урок будет служить этаким трамплином для программерского прыжка в STM32: помигаем светодиодами, поиграемся с таймером — легко и непринуждённо, без копошения в несущественных сейчас деталях. Цель урока — дать общее представление о том, как программируются эти МК.
Сегодня я расскажу, как подготовить рабочую среду для разработки под ARM Cortex-M3 микроконтроллеры STM32F10x. Среда должна в себя включать компилятор, редактор кода, отладчик, прошивалку микроконтроллера, а также должна быть удобна для использования. Ну и должна дружить с платами STM32VLDiscovery и STM32L-Discovery, само собой.
Пожалуй, большинство эмбеддерщиков и просто интересующихся встроенными системами уже слышали про процессоры ARM. Их устанавливают в промышленное оборудование, в смартфоны и аудио-плееры, в видеотехнику, да много ещё куда. Популярность ARM во многом обеспечена их хорошей производительностью при низком энергопотреблении, что делает их идеальными для применения в различных мобильных устройствах.