В этом уроке вы узнаете как настраивать порты ввода-вывода (General I/O Ports, GPIO) для написания супер быстрого и супер маленького кода. Научитесь устанавливать состояние выходов и читать состояние входов. А еще узнаете, как настроить все GPIO очень быстро и без ошибок. Используйте мои уроки для того, чтобы понимать, что вы делаете. Не отказывайтесь от CubeMX полностью. Он будет помогать вам сделать разработку еще быстрее. А знания разработки под CMSIS помогут сделать быстрее ваши программы.

Tags: ,

Когда вы работали с STM32 CubeMX вы быстро выставляли мышкой источник тактирования, выбирали делители для шин. Осмелюсь предположить, что вы могли тупо задать частоту HCLK и позволить кубу самостоятельно настроить за вас систему тактирования! Куб очень полезный и очень опасный инструмент, без него начинает казаться, что тактирование ручками настроить вообще не реально. Но это не так и вы в этом убедитесь, конечно же. В микроконтроллерах на базе ядра ARM Cortex-M непростая система тактирования, на первый взгляд. Но стоит лишь один раз во всем разобраться и сразу станет не так страшно. Чтобы ядро процессора функционировало, ему нужен источник тактовых сигналов, чтобы периферия (GPIO, UART, SPI, АЦП и т.д.) функционировала - ей тоже нужно тактирование! Наверное я обрадую вас, сказав, что этот урок можно вообще пропустить, ведь по умолчанию, ядро УЖЕ работает на частоте 8 МГц. Но если хотите вникать по полной, то добро пожаловать под кат* (*вид вечнозелёных кустарников из семейства бересклетовых). Я напомню, что в этом цикле уроков работаем мы с микроконтроллером STM32F103C6T6.

Tags: ,

Этот курс рассчитан, прежде всего, на профессионалов, кто уже имеет опыт разработки на HAL для STM32 и планирует освоить более низкий уровень для достижения жесткой оптимизации. Кроме того, низкоуровневая разработка для STM32 позволит со временем легко справляться с другими микроконтроллерами ARM Cortex-M для которых не существует библиотеки абстракции HAL. Проще говоря, этот цикл статей позволяет стать независимым от HAL. Здесь я объясняю только самые основные возможности и никак не претендую на какой-то расширенный обучающий курс. Главное преимущество моих уроков в том, что все я проверяю на реальном железе. Этих статей вам не будет достаточно для всеобъемлющего изучения разработки STM32 с CMSIS. Где-то вам придется нагугливать дополнительно техническую документацию, такую как Datasheet'ы, Reference Manual'ы. Хотя я стараюсь здесь приводить скриншоты оттуда. Для удобства разработки мы будем использовать Keil MDK, с помощью мастера создания проекта мы можем создать пустой проект и настроить его как будет удобно. Далее, в качестве примера, я буду использовать микроконтроллер STM32F103C6 с 32 кБ Flash и 10 кБ ОЗУ (серия Low density).

Tags: ,

В интернете вы можете найти 1001 статью про разработку программ для микроконтроллеров ESP8266EX. Большинство из них рассчитаны на Arduino разработчиков. По некоторым причинам, кого-то (и меня в том числе) не устраивает разработка в среде Arduino ввиду отсутствия необходимой гибкости. И только очень небольшой процент гайдов рассчитан на разработку с помощью официального SDK от Exressif в IDE Eclipse. В данной статье речь пойдет о программировании ESP8266 под управлением операционной системы Windows, с помощью кросскомпилятора GCC и RTOS SDK, которые изначально были созданы для Linux разработчиков. В качестве IDE мы будем использовать Visual Studio 2019+ и VisualGDB 6+.

Сегодня существует огромное множество нелинейных сопротивлений, предназначенных для измерения температуры. Самыми популярными из них являются NTC термисторы на 10 кОм. В статье я описываю способ измерения температуры любого NTC термистора с любым номинальным сопротивлением при помощи одного АЦП микроконтроллера. Предоставляю готовый код функции на Си.