Developer от Бога

DV

четверг, 6 июля 2017 г.

STM32. Мигание светодиодов

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

#include "имя.h"

Где имя в кавычках обозначает что файл не внутренний а внешний(хотя поместив его в нужные папки редактора Keil он также становится внутренним.)
Далее следует функция SystemInit(), она заполняет первоначальными настройками STM32F407VG из файла stm32f4xx.h. Без использования разных библиотек - ее присутствие обязательно.
Функция main запускает пользовательский код, прежде всего идут настройки инициализации уже нужных вам блоков, которые достаточно для запуска программы на первом этапе. В этом примере инициализация начинается с включения тактирования ножек нужного нам порта GPIOD, установкой третьего бита в регистре RCC_GPIO. Далее следуют минимальные нужные настройки регистров управления портом GPIOD, включающие биты для работы ножек в режиме вывода, а также прижатием их к положительному питанию.
Так как программа микроконтроллера STM32F407VG работает в вечном режиме, создаем постоянное условие true в цикле while(1) занося в него единичку.

  1. void SystemInit(void)
  2. {
  3. }
  4. int main(void){
  5. RCC_GPIO|=0x8;
  6. GPIOD_MODER=0x55000000;
  7. GPIOD_PUPDR=0x55000000;
  8. while(1)
  9. {
  10. GPIOD_ODR=0xA000;
  11. for(i=0;i<1000000;i++){};
  12. GPIOD_ODR=0;
  13. for(i=0;i<1000000;i++){};
  14. }
  15. }

Комментариев нет:

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