EXTI 인 터 럽 트 인 스 턴 스
2061 단어 stm32인 터 럽 트 프로그램exti
프로그램 에서 GPIOE.2 의 중단 선 2 를 엽 니 다.하강 선 트리거 인 터 럽 트 로 설정 합 니 다.
//exti.h
#ifndef __EXTI_H__
#define __EXTI_H__
#include "stm32f10x.h"
#include "MyTime.h"
#include "bitband.h"
void EXTI_Configuration(void);
void EXTI2_IRQHandler(void) ;
#endif
//exti.c
#include "exti.h"
#include "key.h"
void EXTI_Configuration(void)
{
EXTI_InitTypeDef EXTI_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
//1) IO
KEY_Configuration();
//2) IO , IO 。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);
//3) ,
EXTI_InitStruct.EXTI_Line = EXTI_Line2;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStruct.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStruct);
//4) (NVIC),
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStruct.NVIC_IRQChannel = EXTI2_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStruct.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);
}
//5) 。
void EXTI2_IRQHandler(void)
{
MyDelay_ms(10); //
if(KEY2==0) // KEY2
{
LED0=!LED0;
}
EXTI_ClearITPendingBit(EXTI_Line2); // LINE2
}
//main.c
#include "MyTime.h"
#include "exti.h"
int main(void)
{
MySysTick_Init();
//
GPIO_Configuration();
EXTI_Configuration();
while(1);
}
주:IO 포트 외부 인 터 럽 트 를 사용 하 는 일반적인 절차:
1) IO 。 //KEY_Configuration
2) IO , IO 。
3) , 。
4) (NVIC), 。
5) 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
error: #136: struct ""has no field "AHBSTR"RL-TCPNet을 이식할 때 공식 이더넷 DP83848칩의 구동을 추가하여 컴파일할 때 계속 오류를 보고하였다 error: #136: struct ""has no field "AHBSTR" 사용한 것은 처음에 #...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.