Top.Mail.Ru

Часть 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. Описание и подключение уже рассматривалось здесь. Поэтому не будем долго толочь воду в ступе, а просто подключим и измерим. Датчики, в основном, практически одинаковы, вся разница заключается в точности и пределах измерения и, соответственно, в цене. Может есть ещё отличия, но нам они не принципиальны. Основная фишка этих ...

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

Библиотека Button для обработки нажатий кнопок на STM32. KY-004.

Мы тут обсуждали вроде бы простейший вопрос, как обрабатывать нажатия кнопок наиболее универсально и удобно. В результате мне прислали библиотеку для этого, которой я и поделюсь в статье с разрешения автора (я правда изменил оформление библиотеки под привычный мне стиль). Можно это даже приурочить к моему «курсу» по датчикам, так как один из модулей этого ...

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

Модуль датчика вибрации KY-002. Схема подключения к STM32.

Всем привет и рад познакомиться ) Добрался я, наконец-то, до написания статей, а точнее до первых попыток. Опыта в этом нет, так что, если что пишите пожелания и замечания в комментарии. Как мы и условились с Aveal, я буду делать обзоры на разнообразные датчики из такого вот набора – ссылка. А начну с одного из ...

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

Часть 13. STM32 и C++. EEPROM AT24Cxx.

В предыдущей статье мы рассмотрели реализацию I2C на ядре Cortex-M4. Теперь настало время что-нибудь подключить. Давайте подключим серию микросхем AT24Cxx. Кроме этих микросхем можно подключить кучу разных датчиков. Позже на подходе BMP280, BME280, SGP30 и HDC1080. Других у меня пока нет. В библиотеку входит всего один конструктор и две функции. Конструктору AT24Cxx(I2C* I2C_Ptr, uint8_t DevAddress, ...

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

Часть 12. STM32 и C++. I2C в Cortex-M4.

Сегодня расскажу, как работать с I2C на ядре Cortex-M4. Для других ядер алгоритм будет другой. Почему так сделано, не знаю. Я долго пытался искать информацию, как это делается, но всё, что я находил, не работало. На каком-то форуме нашёл инфу, где человек сказал, что правильная работа описана то ли в даташите, то ли ещё где-то. ...

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

Часть 11. STM32 и C++. Драйвер дисплея HX8347D.

В этой статье расскажу, как пишутся драйвера для дисплеев. В принципе, любых, независимо от интерфейса. Сегодня рассмотрим HX8347G. Дисплей довольно тормозной, и тормознутость GFX_TFT дает довольно термоядерное сочетание медлительности. Но для примера подойдёт. Дисплей рассчитан на 8-ми битный интерфейс. Питание от 5 вольт, но контроллер дисплея и подсветка работают от 3.3 вольт. На плате дисплея ...

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