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

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

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

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

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

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

#include <stm32f4xx.h>

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

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

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

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

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

Схема:

Прерывание на контроллере AVR в Atmel AVR Studio

Первым делом о том что такое прерывание.
Прерывание ( interrupt ) - это своеобразная функция, которая будет выполнена при поступлении сигнала на какой нибудь вход контроллера.
При работе в AVR Studio прерывания создаются при помощи макросов ISR() , SIGNAL() и INTERRUPT(). Они помечают некоторую функцию как обработчик прерывания. Их различие в том, что INTERRUPT() и ISR() определяют функцию обработчик для случая, когда разрешено общее прерывание (обработчик может быть прерван), а SIGNAL() для случая когда общее прерывание запрещено.

Работаем с Lcd дисплеем WH1602 в STM32 f4 discovery

Практически в любой микроконтроллерной системе есть необходимость выводить информацию пользователю, именно для этих целей и будем применять наш дисплей.
Выглядит он вот так:
 


 

Прерывания на stm32 f4 discovery - зажигаем диоды по кругу - arm

Продолжаем знакомиться с stm32f4 discovery.
На этот раз речь пойдёт о прерываниях.
Создадим программу которая будет зажигать диоды "по кругу" т.е. при нажатии на кнопку срабатывает прерывание и зажигается следующий диод..

Как и раньше я использую eclipse + arm plugin + st-util

Первым делом инклуды:

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

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

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

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

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

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

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

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

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

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

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

Заголовки:

Прошивка внешнего контроллера при помощи stm32 discovery - SWD

Для создания минимального проекта нам понадобится: контроллер stm32 ( у меня stm32f103 ), жменя проводов, светодиод (для проверки).
Мы не будем вешать даже кварц, чтобы не усложнять процесс.
Очень удобно использовать вот такую плату-переходник с LQFP:

Стоит она в районе 1$. Зато не надо травить крохотные дорожки.
Собираем вот такую схему (для stm32f103 48ног):