Top.Mail.Ru

Stm32. Переходим на современный C++. Часть 2. Работа с портами ввода-вывода.

Вступление. На прошлом занятии мы развернули рабочее пространство, а также собрали первый проект из готового исходника. Сейчас предлагается рассмотреть возможности по управлению портами и линиями ввода-вывода, предоставляемые библиотекой. Все классы для работы с GPIO доступны в заголовочных файлах <ioports.h> и <iopins.h>. Интерфейс GPIO. Библиотека Zhele предоставляет два основных семейства классов для работы с портами и линиями ввода-вывода: PortX, где X - ...

Продолжить чтение

Stm32. Переходим на современный C++. Часть 1. Настройка рабочего пространства.

Вступление. В сети появляется всё больше материалов, посвященных применению языка C++ для программирования микроконтроллеров. Являясь сторонником этого направления, хочу поделиться теми знаниями и умениями, которые получил, в виде цикла статей-уроков с рассмотрением вопросов разработки для Stm32 на современном языке C++ с применением разрабатываемой мною библиотеки (или фреймворка) Zhele. Я не являюсь профессиональным разработчиком в принципе, с ...

Продолжить чтение

Часть 20. I2C. Дополнение.

В статье "Часть 12. STM32 и C++. I2C в Cortex-M4" я описал, как работать с I2C на ядрах Cortex-M4. Продолжая работать с I2C на других чипах, я столкнулся с тем что данный способ общения с I2C корректен не для всех ядер. Описанный способ точно подходит для STM32F405xx и STM32F407xx, вполне возможно что подходит также и ...

Продолжить чтение

Часть 19. Не ModBUS, кое-что попроще (продолжение).

Продолжение предыдущей статьи. Если разобрались в том, что я и сам плохо понимаю (для тех, кто не понял - шутка), будем продолжать разбираться дальше. Есть два способа обмена: просто ведущий стучится к ведомому, тот в ответ высылает пакет со всеми данными, и второй способ, похожий на ModBUS (совсем чуть-чуть). В этом случае ведущий передаёт один ...

Продолжить чтение

Часть 18. Не ModBUS, кое-что попроще.

ModBUS. О нем много было рассказано, много копий сломано. Но сложилась ситуация таким образом, что никто и ничего не рассказал о том, как пишется прошивка для ведомого, а не для ведущего. Как создаются регистры, как они заполняются, каким образом отыскивается нужный регистр. Вот общение с ведомым обсосано со всех сторон, но разговор сейчас не о ...

Продолжить чтение

Часть 17. Зародыш драйвера SPI для STM32 на C++.

Что-то мне так сильно повезло, что у меня попёрли дисплеи на SPI, и поэтому пришлось написать библиотеку для работы с этим интерфейсом. Так как очень многие дисплеи могут работать только ведомыми (slave) и могут только принимать данные, написал только часть касающуюся передачи. Постарался сделать все типы передачи данных и часть функций чтения. Хоть передачу и ...

Продолжить чтение

Файлы SVD для STM32. Удобная отладка регистров под STM32CubeIDE.

Все, кто пользовался отладкой на уровне регистров под STM32CubeIDE, замечал, что список регистров идёт вразнобой, без какой-либо логики. Например, список для типичного STM32F407xx выглядит таким образом, здесь у нас порты ввода/вывода: Это у нас UART/USART: Это таймеры: Как видим, все устройства идут не по порядку, а вразнобой. И это ещё цветочки. Есть МК, где всё ...

Продолжить чтение

Часть 16. Таймер реального времени RTC на C++.

Сегодня рассмотрим таймер реального времени (RTC) или по-простому часы. Это такая штука, которая много чего умеет: Считать реальное время, учитывая високосный год, разное количество дней в месяцах и летнее время; Имеет два будильника, от которых можно выводить МК из спячки; Блок автоматической побудки с периодическим флагом и прерыванием; Специальные входы, к которым можно подключить концевые ...

Продолжить чтение

Часть 15. STM32 и С++. Базовые таймеры TIM6 и TIM7.

Настало время заняться потихоньку таймерами. Начнём с самых простых - базовых таймеров TIM6 и TIM7. Благодаря библиотеке прерываний в статье STM32 и C++. Мой вариант архитектуры, обработка прерываний автора Aveal, мы теперь можем управлять прерываниями как захотим. Надеюсь, что всё получится, и в будущем можно будет писать более гибкие библиотеки. Ну и раз пошла такая ...

Продолжить чтение

Часть 14. STM32 и С++. Датчики BMP280 и BME280.

Сегодня рассмотрим подключение датчиков BMP280 и BME280. Описание и подключение уже рассматривалось здесь. Поэтому не будем долго толочь воду в ступе, а просто подключим и измерим. Датчики, в основном, практически одинаковы, вся разница заключается в точности и пределах измерения и, соответственно, в цене. Может есть ещё отличия, но нам они не принципиальны. Основная фишка этих ...

Продолжить чтение

Обзор конфиденциальности

На этом сайте используются файлы cookie, что позволяет нам обеспечить наилучшее качество обслуживания пользователей. Информация о файлах cookie хранится в вашем браузере и выполняет такие функции, как распознавание вас при возвращении на наш сайт и помощь нашей команде в понимании того, какие разделы сайта вы считаете наиболее интересными и полезными.