Микроконтроллеры

Моргаем диодами при нажатии кнопки на stm32f4-discovery [ARM Cortex]

Речь пойдёт о программе на МК STM32 которая позволит нам зажигать диоды при нажатии кнопки.

Я пользуюсь отладочной платой STM32F4 discovery. Очёнь удобно и быстро. + не дорого

Приступим.
Я пользуюсь Eclipse + ST utility + gdb

Первым делом подключаем заголовочный файл для работы с контроллерами stm32f4 :

#include <stm32f4xx.h>

Как подключать либы рассказывать не буду.
Обзовём константу для управления портом D (там наши диоды) новым именем:

SPI в stm32 - шлём из SPI1 в SPI2

SPI - один из самых распространенных интерфейсов для передачи данных между цифровыми микросхемами.
Естественно STM не обошли стороной его в своих микроконтроллерах.

Напишем программу, которая передаёт данные из SPI1 в SPI2, а затем проверяет правильность передачи.
Я буду использовать (как и во всех других статьях) stm32f4-discovery с мк stm32f407vgt6.
Приступим.

Заголовки:

Работаем с простыми таймерами STM32 F4 discovery

В любом современном контроллере есть таймеры. В этой статье речь пойдёт о простых (базовых) таймерах stm32f4 discovery.
Это обычные таймеры. Они 16 битные с автоматической перезагрузкой. Кроме того имеется 16 битный программируемый делитель частоты. Есть возможность генерирования прерывания по переполнению счётчика и/или запросу DMA.

Приступим. Как и раньше я пользуюсь Eclipse + st-util в ubuntu linux

Первым делом подключаем заголовки:

Ставим Eclipse + ARM plugin + stlink utility для работы с STM32F4 DISCOVERY в Linux

Недавно приобрел не безызвестную отладочную плату STM32F4.
Порадоваля дефолтной прошивке и приступил к настройке IDE для разработки.

Свой выбор я остановил на связки Eclipse + ARM plugin + Sourcery CodeBench.
Плюсы такого решение: бесплатно, много примеров
минусы: ставить всё придётся ручками и отдельно.

Работаем с АЦП stm32f4 discovery - мерим температуру

В отладочной плате STM32F4 discovery микроконтроллер оснащенный 12битным АЦП со встроенным датчиком температуры и напряжения.
В этой статье займёмся датчиком температуры, заодно рассмотрим принципы работы с АЦП в stm32 spl (стандартной периферийной библиотеке).
Напишем приложение, которое зажигает 4 диода в зависимости от уровня получаемого с АЦП1.

Необходимые инклуды:

#include <stm32f4xx.h>
#include <stm32f4xx_rcc.h>
#include <stm32f4xx_gpio.h>
#include <stm32f4xx_adc.h>

Инициализируем диоды:

Моргаем портами контроллера AVR или программируем в Atmel AVR Studio

Эта статья подойдёт новичкам, которые только делают первые шаги.

Нам понадобится:
Atmel AVR Studio - для программирование
Proteus - для симуляции

Открываем студию. Видим привычное для пользователей Microsoft Visual Studio окно.

Жмём Файл - Новый проект

Создаём "C Executable Project". Задаём имя и жмём ок.
Теперь перед вами окно выбора контроллера:

Генерируем случайные числа на STM32 контроллере

В наше время ни для кого не секрет, что в современных контроллерах есть возможность генерировать случайные числа. Причём эта возможность заложена в устройства в виде отдельного "железного" блока.
Исключением не есть и STM32 контроллеры.
Я же расскажу о том как написать программу для этого семейства микроконтроллеров для получения 32битного случайного числа.
В стандартной периферийной библиотеке от STM32 (SPL) модуль для работы со случайными числами назвали RNG - Random Number Generator.

Программируем первый AVR контроллер [ AtMega8 ]

Для всего нижеизложенного нам понадобится:

  • CodeVisionAvr - для компиляции программы контролера
  • Proteus - для симуляции

Если у вас нет этих программ лучше скачайте именно их. В других всё может кардинально отличатся.
Немного для понимания процесса.
Тут вы не найдёте теоретических сведений о контроллерах и правильном их программировании. Это всего навсего хелловорд в мире контроллеров.
Мы запрограммируем контроллер, который будет мигать диодом по заданной программе.

Схема:

Мигаем диодами с помощью ШИМ ( PWM ) stm32f4 discovery [ arm ]

В этой статье речь пойдёт об использовании ШИМ контроллера. Применений этому режиму работы море, от банального моргания диодом, до управления двигателями и прочей электроникой.. Суть заключается в том, что при помощи широтно-импульсной модуляции и сглаживающей RC цепи можно получать аналоговое напряжение в диапазоне от логической еденицы до 0.

Мы же будем использовать таймер TIM4 нашего STM32F4 Discovery в качестве формирователя ШИМ сигнала (на буржуйском PWM - pulse width modulation).

Настроим и оставим как есть, чтобы диоды "моргали" с разной частотой.