Когда вы работали с 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 термистора с любым номинальным сопротивлением при помощи одного АЦП микроконтроллера. Предоставляю готовый код функции на Си.

В этой статье я предоставляю 100% рабочие схему и исходные коды для STM32F4x7 для работы в связке STM32 + KSZ8863RLLI + HAL + LwIP.

Микросхема KSZ8863 от Microchip - двухпортовый PHY контроллер Ethernet'а. Умеет работать как standalone сетевой коммутатор 10/100 Мб. Современный, быстрый, надежный чип. Меня особенно привлекло то, что в нем есть функция MDI-X, это когда контроллер автоматически распознает, какой патч-корд к нему подключили, прямой или кроссовер. Он автоматически переворачивает пары TX/RX под любой кабель. Это особенно удобно, когда вы подключаете несколько устройств между собой обычными прямыми патч-кордами.