В прошлой статье обсуждалась адресация регистров и их предназначение микроконтроллера STM32F407VG. Код, который зажигает и гасит светодиоды
начинается с названия файла общих настроек , а через
#define мы указываем более читаемый вид указателям на регистры
управления.
В случае если таких регистров в программе будет много, целесообразно
вынести этот код в отдельный файл, и подключить его следующим
видом:
Где имя в кавычках обозначает что файл не внутренний а внешний(хотя поместив его в нужные папки редактора Keil он также становится внутренним.)
Далее следует функция SystemInit(), она заполняет первоначальными настройками STM32F407VG из файла stm32f4xx.h. Без использования разных библиотек - ее присутствие обязательно.
Функция main запускает пользовательский код, прежде всего идут настройки инициализации уже нужных вам блоков, которые достаточно для запуска программы на первом этапе. В этом примере инициализация начинается с включения тактирования ножек нужного нам порта GPIOD, установкой третьего бита в регистре RCC_GPIO. Далее следуют минимальные нужные настройки регистров управления портом GPIOD, включающие биты для работы ножек в режиме вывода, а также прижатием их к положительному питанию.
Так как программа микроконтроллера STM32F407VG работает в вечном режиме, создаем постоянное условие true в цикле while(1) занося в него единичку.
#include "имя.h"
Где имя в кавычках обозначает что файл не внутренний а внешний(хотя поместив его в нужные папки редактора Keil он также становится внутренним.)
Далее следует функция SystemInit(), она заполняет первоначальными настройками STM32F407VG из файла stm32f4xx.h. Без использования разных библиотек - ее присутствие обязательно.
Функция main запускает пользовательский код, прежде всего идут настройки инициализации уже нужных вам блоков, которые достаточно для запуска программы на первом этапе. В этом примере инициализация начинается с включения тактирования ножек нужного нам порта GPIOD, установкой третьего бита в регистре RCC_GPIO. Далее следуют минимальные нужные настройки регистров управления портом GPIOD, включающие биты для работы ножек в режиме вывода, а также прижатием их к положительному питанию.
Так как программа микроконтроллера STM32F407VG работает в вечном режиме, создаем постоянное условие true в цикле while(1) занося в него единичку.
- void SystemInit(void)
- {
- }
- int main(void){
- RCC_GPIO|=0x8;
- GPIOD_MODER=0x55000000;
- GPIOD_PUPDR=0x55000000;
- while(1)
- {
- GPIOD_ODR=0xA000;
- for(i=0;i<1000000;i++){};
- GPIOD_ODR=0;
- for(i=0;i<1000000;i++){};
- }
- }
Комментариев нет:
Отправить комментарий