Целью этого упражнения будет мигание светодиодами. Схема подключения светодиодов к микроконтроллеру следующая:

Основная функция программы показана в примере 1 .
Пример 1. Основная функция программы
int main (void)
{
// Конфигурация GPIO
GPIO_Configuration ();
while (1)
{
// Отключаем D1
GPIO_SetBits (GPIOE, GPIO_Pin_14);
// Включаем D2
GPIO_ResetBits (GPIOE, GPIO_Pin_15);
// Вставить задержку
Delay(0xAFFFF);
// Отключаем D2
GPIO_SetBits (GPIOE, GPIO_Pin_15);
// Включаем D1
GPIO_ResetBits (GPIOE, GPIO_Pin_14);
// Вставить задержку
Delay(0xAFFFF);
}
}
Как видно в бесконечном цикле, светодиоды D1 и D2 поочередно включаются. Светодиод D1 подключен к линии 14 порта E (PE14), светодиод D2 подключен к линии 15 порта E (PE15). Светодиоды подсвечиваются при низком напряжении на линии, что можно получить с помощью функции:
GPIO_ResetBits (имя_порта, номера_строки для сброса)
например, сброс функции линии E-порта 15 следует после функции:
GPIO_ResetBits (GPIOE, GPIO_Pin_15)
Особого внимания заслуживает 4-я строка из примера 1, в которой вызывается функция GPIO_Configuration () для инициализации соответствующих портов ввода/вывода. В этом случае необходимо установить порты E 14 и 15 в режим вывода. Это делается с помощью:
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init (GPIOE, & GPIO_InitStructure);
Кроме того, необходимо подключить тактовый сигнал к модулю портов ввода/вывода (по умолчанию тактовый сигнал отключен, для экономии питания):
RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);
