Top.Mail.Ru

Профиль сообщества

Эдуард-Анисимов
Имя
Эдуард
Фамилия
Анисимов
Информация
Заканчивал институт с правом считать себя "Инженером системотехником" По специальности никогда не работал. На последнем месте работы понадобилось старинные Советские установки переводить на цифру. Делал это под АСМ на PIC контроллерах. Друг подарил чип STM. И всё началось с этого. Я не претендую на всезнайку. Я жду от форума помощи в моих поисках. Я буду здесь размещать то, что я достиг. Может новичкам это поможет. Но моя главная цель - достучаться до Гуру программирования. Я не знаю, зачем мне это нужно, но я хочу знать. Поможем друг другу?
2 недели ago no Comment

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

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

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

4 недели ago no Comment

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

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

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

1 месяц ago no Comment

Прикормочный кораблик. Зародыш кораблика для подкормки.

Как-то несколько лет назад, когда я только начинал программировать, вышел на меня человек и попросил написать прошивку для "Прикормочного кораблика". Потом он куда-то пропал и так и не ответил, заработало это, как он хотел, или нет. Я же сам полную схему не собирал, только проверял управление, работает нормально или нет. У меня была договоренность, что ...

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

3 месяца ago no Comment

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

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

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

4 месяца ago no Comment

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

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

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

5 месяцев ago 4 комментария

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

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

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

6 месяцев ago no Comment

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

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

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

6 месяцев ago 1 Comment

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

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

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

6 месяцев ago no Comment

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

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

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

6 месяцев ago 2 комментария

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

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

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