Рейтинг@Mail.ru
STM32. Уроки по программированию STM32F4. Урок № 2. Мигание светодиодом STM32F4.
Войти
или
Зарегистрироваться
Главная Файлы Видеоматериалы Форум
Карта сайта
Главная -> РУБРИКИ: -> Программирование STM32F4 -> STM32. Уроки по программированию STM32F4. Урок № 2. Мигание светодиодом STM32F4.

Статья опубликована: 2015-11-20/14:43:22-admin

STM32. Уроки по программированию STM32F4. Урок № 2. Мигание светодиодом STM32F4.



Начало здесь:


STM32. Уроки по программированию STM32F4. Урок № 0. Вводный. Описание. Установка IDE.


STM32. Уроки по программированию STM32F4. Урок № 1. Система тактирования STM32F4.




 

 

Вместо предисловия.

 

В прошлом уроке кратко была рассмотрена система тактирования STM32F4. В этом уроке напишем архисложную простую программу мигания светодиодом. Как говорится - начало всех начал в изучении программирования на МК. Кратко познакомимся с настройкой порта на выход.

 

Предисловие.

 

На плате STM32F4Discovery имеются 4 пользовательских светодиода подключенные к порту D, к пинам с 12 по 15. Для зажигания светодиода необходимо подать "1", логический высокий уровень на нужный пин. Итак приступим.

 

CubeMX и SW4STM32.

 

Откроем проект в Кубе из прошлого урока. Проведем необходимые настройки на вкладке ПинАут. Настроем пин 12 порта D на выход. Систему тактирования оставим без изменений. На вкладке Конфигурейшн произведем настройку пина: Укажем метку, настроем скорость работы порта, выбирем режим работы пина.

Проверим настройки проекта и сгенерируем код.

Перенос из Куба в Эклипс будет проще. Так как у нас уже есть проект из прошлого урока с прописанными путями и символами, то нам достаточно обновить файлы исходников и заголовков. Для этого необходимо скопировать папки Drivers, Src, Inc и проекта Куба в проект Эклипс с заменой.

В самом Эклипсе необходимо обновить содержимое проекта и переиндексировать проект.

Скомпилить проект и убедиться в отсутствие ошибок. Приступим к реализации мигания светидиода на STM32F4.

 

 

Порт D. Пин 12.

 

Куб сгенерировал функции инициализации порта D. В файле gpio.c можно посмотреть функцию инициализации.

void MX_GPIO_Init(void)
{

  GPIO_InitTypeDef GPIO_InitStruct;

  /* GPIO Ports Clock Enable */
  __GPIOH_CLK_ENABLE();
  __GPIOD_CLK_ENABLE();

  /*Configure GPIO pin : PD12 */
  GPIO_InitStruct.Pin = GPIO_PIN_12;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);

}

Для мигания светодиода необходимо в основном цикле "майна" провести следующую последовательность.

1. Подать на выход Высокий логический уровень - записать 1,

2. Подождать N-ое количество времени,

3. Подать Низкий логический уровень - записать 0,

4. Подождать N-ое количество времени,

5. Перейти к пункту №1.

Для начала напишем свою "бесполезную" функцию задержки, основанную на пустом циле. В это время процессор простаивает и не выполняет ничего полезного.

После компиляции и запуска убеждаемся в мигании зеленого LEDа.

Изменим самописную задержку на задержку имеющуюся у HALа. Принцип тот же, процессор простаивает, только не в бесполезном цикле, а в ожидании когда Системный таймер отсчитает необходимую задержку.

 

__weak void HAL_Delay(__IO uint32_t Delay)
{
  uint32_t tickstart = 0;
  tickstart = HAL_GetTick();
  while((HAL_GetTick() - tickstart) < Delay)
  {
  }
}

Скомпилим и убедимся в работоспособности данного кода. Светодиод "бодро" моргает с частотой в полГерца.

 

Уроки по программированию STM32F4. Урок № 2. Мигание светодиодом на STM32F4. Видео.

 

 

 

В следующей статье продолжим тему со светодиодом, но только необходимую задержку оптимизируем использую аппаратный таймер. Заодно с ним (таймером) и познакомимся.

 

Проект данного урока для Эклипс - Урок №2. Мигание светодиодом на STM32F4 скачать можно от сюда: тыц для скачивания.

 

Update № 1. После этого урока прошу прочитать Update № 1 к Уроку № 0. Так как следующие уроки будут основыватся на проекта из данного урока.

 

Измененный проект по Update № 1 данного урока для Эклипс - Урок №2. Мигание светодиодом на STM32F4 скачать можно от сюда: тыц для скачивания.

 

З.Ы. коментарии, вопросы и предложения складываем тут

 


Продолжение здесь:


STM32. Уроки по программированию STM32F4. Урок № 0. Update № 1.Портирование из STM32CubeMX в SW4STM32.


STM32. Уроки по программированию STM32F4. Урок № 3. Системный таймер SysTick STM32F4.


STM32. Уроки по программированию STM32F4. Урок № 4. Программный многозадачный таймер STM32F4.


STM32. Уроки по программированию STM32F4. Урок № 5. Работа с АЦП+DMA + фильтр скользящее среднее.


STM32. Уроки по программированию STM32F4. Урок № 6. Работа с таймерами TIM7 и TIM1.



Просмотров: 14969



Комментарии: (0)

Оставить комментарий

Да, Я Хочу Всегда Быть В Курсе Новых Событий На Сайте!

Подпишитесь прямо сейчас, и получайте обновления на свой E-Mail:

Ваш E-Mail в безопасности


Рекомендованные статьи:



Update № 1. Это небольшое дополнение к Уроку № 0. Вводному. В данной статье опишится менее затратный способ по портированию проекта из STM32CubeMX в SW4STM32.


Переходим к изучению МК - STM32F4. Система тактирования.


РУБРИКИ:








Последняя статья:

Часть I. Статья №6. Верстка подвала – блока футтер

На прошлом уроке мы сверстали основной блок контент. Оформили  статьи, которые отображаются на главной странице. Оформили их стилями, не входящими в макет сайта, но вписывающимися в общий дизайн сайта. На сегодняшнем уроке мы оформим подвал сайта. В данный блок войдут ссылки на стандартные страницы любого сайта, а также копирайт.

Читать далее »


Справка Обратная связь Вопросы и ответы Контакты RSS-лента © 2013-2016, ДРУиД - Дом Рационально-Умный и Душевный
Рейтинг@Mail.ru Яндекс.Метрика