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

~ДРУиД~

Дом рационально-умный и душевный

ДРУиД - Дом Рационально-Умный и Душевный
Строительство частного "Умного" дома своими руками
Изучение МК STM32
Материалы по сайтостроению
Изготовление девайсов для быта и не только
STM32. Уроки по программированию STM32F4. Урок № 2. Мигание светодиодом STM32F4.

20 November 15 г. Автор - admin


 

 

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

 

В прошлом уроке кратко была рассмотрена система тактирования 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 скачать можно от сюда: тыц для скачивания.

 

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

 


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



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

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

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


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

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

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


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

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

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

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



РУБРИКИ САЙТА:



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

Выбор системы оплаты труда - изобретаем велосипед

С промежуточным итогом по современным системам оплаты труда ознакомились. Теперь вернемся к нашим попугаям. Для чего менять существующую систему? На что опираться при формировании новой системы? Как учесть все пожелания работодателя (читай цели, возлагаемые на работника)? Как не ущемить права работника, не потерять квалифицированного сотрудника, поднять мотивацию и увеличить производительность труда? Начнем разбираться.

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

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

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

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


Рейтинг@Mail.ru Яндекс.Метрика