Top.Mail.Ru

Часть 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 вольт. На плате дисплея ...

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

Часть 10. STM32 и C++. GPIO на классах. Изменения в библиотеке.

Давно назревала ситуация изменить немного библиотеку. Раньше я подключал 4-х, 8-ми выводные интерфейсы к строго определённым выводам. Это накладывало некоторые ограничения на написание драйверов для дисплеев. Приходилось заниматься ногодрыжеством. Решил положить этому конец и немного модернизировать библиотеку. Изменения коснулись файлов gpio_main.* и IO_Digital.*. В чём суть изменения? Возьмём LCD1602, подключенный по 8-ми битному интерфейсу. Его ...

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

Часть 9. STM32 и С++. Библиотека UART.

Теперь рассмотрим UART и USART - инициализация, передача/приём, так как вещь очень нужная как минимум при отладке кода. Ведь некоторые процессы, происходящие при выполнении, неудобно отслеживать отладчиком CubeIDE. Предупреждение: Во всех модулях, которые я пишу, нет защиты от дурака. Я пошёл на это ради уменьшения кода, да и ленивый я. Поэтому необходимо заранее распланировать, ещё ...

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

Часть 8. STM32 и С++. Библиотеки Print и GFX_TFT.

Данная статья немного выбивается из темы, но я опишу немного эти библиотеки. Это один из моих первых опытов переделки Ардуиновских библиотек. Всё будет кратенько, так как описывать, что я сделал, ресурсов не хватит. Да и не нужно это. Если кто-то пробовал писать для Ардуино, могли заметить, что в программном ядре существует класс Print. Этот класс ...

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