Наш канал в telegram

Рубрика «Теория»

изучаем матчасть

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 14. Использование DMA

Что такое DMA и зачем это нужно Возможности и работа DMA в stm32 Регистры Техника программирования DMA Что такое DMA и зачем это нужно DMA (Direct Memory Access) — технология прямого доступа к памяти. Эта технология позволяет быстро и без использования центрального процессора пересылать данные из одной области памяти в другую. При этом для такой …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 13. Работа с модулями ADC

Общее описание Скорость оцифровки, тактирование Физические линии ввода, группы каналов Включение, запуск оцифровки, режимы работы модулей ADC Одиночные и непрерывные преобразования Сканирование списка каналов Использование DMA Опрос инжектированных каналов Прерывистый режим опроса каналов Режим калибровки Предельный компаратор Регистры Пример Общее описание ADC (analog to digital converter) — это аналого-цифровой преобразователь (АЦП). Модули ADC предназначены для …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 12. Работа с модулями USART и UART.

Общее описание Регистры Техника программирования Пример Общее описание USART — это модуль универсального синхронно-асинхронного приёмо-передатчика. В первую очередь эти модули используются для организации связи по интерфейсу RS-232 и другим, имеющим аналогичный формат фреймов (RS-422, RS-485). Модули, естественно, реализуют не весь интерфейс, а только нижний уровень логики (формат передачи одного фрейма, байта), к которому потом ещё …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 11. Подключение и использование драйверов из пакета StdPeriph

Подключение драйверов стандартной периферии из пакета StdPeriph Пример использования драйверов для работы с RCC и GPIO. Подключение драйверов стандартной периферии из пакета StdPeriph В прошлый раз мы познакомились со стандартом CMSIS, а также научились подключать поставляемые вместе с пакетом Keil uVision библиотеки. Сегодня мы продолжим изучение стандарта CMSIS и рассмотрим пакет StdPeriph Drivers — драйвера …

Микрокомпьютер Omega2. Часть 9. Сборка альтернативной прошивки на базе OpenWRT

Введение Подготовительный этап Алгоритм сборки Дополнительная информация Введение Сегодня я расскажу о том, как собрать альтернативную прошивку для микрокомпьютера Omega2. Зачем это нужно? Ну, во-первых, оригинальная прошивка сделана на базе уже устаревшей версии LEDE OpenWRT, а значит там могут быть ошибки, которые в новых версиях уже пофиксили. Во-вторых, возможности OpenWRT постоянно растут (это ж «open …

Инструкция по созданию Telegram ботов. Часть 5. Пишем Telegram бота на php для работы через longpolling

Введение API telegram для работы через поллинги Переделываем нашего telegram-бота на php для работы через поллинги Замечания и дополнения Введение Чуть меньше года назад я обещал написать, как сделать на php телеграм-бота, работающего через longpolling. И вот, наконец-то, у меня дошли руки, чтобы выполнить это обещание. В чём идея этого метода и чем он принципиально …

Памятка по ООП

Сегодняшняя статья представляет собой небольшую памятку, в которой кратко, в тезистной форме изложены основные понятия объектно-ориентированного программирования (ООП). Программа в ООП представляет собой набор взаимодействующих абстрактных объектов. Объекты имеют атрибуты (свойства, переменные). Эти атрибуты для объектов прописаны программистом. Над объектами можно выполнять операции (методы, действия, функции) с целью модификации этих или других объектов. Сами операции …

Как сделать поле для ввода текста на svg

Не так давно, работая над web-мордой одного интересного устройства (кстати, если что, я теперь принимаю заказы на создание web-интерфейсов на svg), мне пришлось решать задачу создания полей для ввода текста. В спецификации svg такие поля отсутствуют, в интернете адекватных решений найдено не было, так что пришлось изобретать велосипед самому (на самом деле я конечно делал …

Программирование ARM-контроллеров STM32 на ядре Cortex-M3. Часть 10. CMSIS, использование стандартных библиотек и функций.

Стандарт CMSIS Подключение к проекту модулей и библиотек CMSIS RTE_Device.h — конфигурирование контроллера startup_stm32f10x_md.s — таблица векторов, заглушки обработчиков, код запуска system_stm32f10x.c — настройка системы тактирования stm32f10x.h — определения имён областей, регистров, битов, констант… Пример использования CMSIS в программах Стандарт CMSIS К этому моменту мы уже можем с нуля накодить для STM32 на асме какой-нибудь …

Неоднозначность регистрации временных интервалов при переполнении таймера-счетчика МК.

В статье пойдет речь о захвате состояния встроенного таймера-счетчика, используемого для регистрации времени наступления внешнего события, возникающих при этом проблемах и возможных способах их решения. Допустим, стоит задача средствами микроконтроллера регистрировать некую последовательность внешнего дискретного сигнала с сохранением времени каждого изменения для дальнейшей обработки. Упрощенный алгоритм работы мне видится таким. Встроеный таймер/счетчик запускается на подсчет …