GPIO In itTypeD ef GPIO InitStructure; // Объявление структуры модуля EXTI EXTI InitTypeDef EXTI InitStructure; II Объявление структуры модуля EXTI NVICIni tTypeDef NVICInitStructure; // Разрешение тактирования модуля GPIOA(RCC APB2Periph GPIOA) RCC_APB2PeriphClockCmd(BUTTON_CLK[Button] | RCC APB2Periph AFIO, ENABLE); // Настройка вывода на вход GPIO InitStructure.GPIO Mode = GPIO Mode IN FLOATING; // Установка вывода для дальнейшего использования (GPIOPi nO) GPIO InitStructure.GPIO Pin = BUTTON PIN[Button]; // Передача структуры - применение параметров GPIO_Init(BUTTON_PORT[Button], &GPIO_InitStructure); if (Button Mode = BUTTON MODE EXTI) { // Конфигурирование кнопки для внешнего прерывания GPIO_EXTILineConfig(BUTTON_PORT_SOURCE(Button], BUTTON PIN SOURCE[Button]); // Установка линии прерывания(ЕХТІ ЕіпеО) EXTIInitStructure.EXTILine = BUTTON_EXTILINE[Button]; // Конфигурация прерывания EXTI InitStructure.EXTI Mode = EXTI_Mode_Interrupt; // Конфигурирование внешнего прерывания по переднему фронту EXTI InitStructure.EXTI Trigger = EXTI Trigger Rising; // Разрешение прерывания EXTIInitStructure.EXTILineCmd = ENABLE; // Применение параметров EXTI_Init(&EXTI InitStructure); // Прерывание EXTIO IRQn NVICInitStructure.NVICIRQChannel = BUTTON_IRQn[Button]; // Установка нриоритега группы NVICInitStructure.NVICIRQChannelPreemptionPriority = OxOF; // Установка приоритета подгруппы
RkJQdWJsaXNoZXIy MTExODQxMg==