외부 인터럽트 설정

 
 
-----------------------------------------------------------------------------------------
 
int main(void)
{
    uint8_t ch;
 
    /* System Clocks Configuration */
    RCC_Configuration();  //시스템 클럭을 살리고 주변 프리페럴럴 를 살린다.
 
    RCC_GetClocksFreq(&rcc_clocks); //현재 설정된 클럭을 rcc_clocks 스트럭쳐로 가져 온다.

    /* NVIC configuration */
    NVIC_Configuration();   //인터럽트 백터 테이블을 선언 한고, 우선순위 선언, 인터럽트 살리기 

    /* Configure the GPIO ports */
    GPIO_Configuration();   //기능에 따라 GPIO를 선언하고 동작 시킨다.

    /* EXTI configuration */
    EXTI_Configuration();   //외부 인터럽트를 위해 설정 한다.


-----------------------------------------------------------------------------------------
 
EXTI_Configuration();   함수 는 외부 인터럽트를 설정 한다.

 
 
외부 인터럽트는 총 19개의 edge detecter 구성 되어 event 나 인터럽트 처리 에 사용된다.
 rising, falling 또는 두개 한꺼번에 동작 가능 하도록 설정 할수 있습니다.

PORTA0,PORTB0 와 같이 여러개의 port의 같은 bit 는 한개의 인터럽처 처리가 된다.
또한 16번 인터럽트는 PVD,17번 RTC,18번 USB wakeup 로 사용된다.
NVIC에서 인터럽트를 사용하겠다고 설정하고,이함수에서 특성을 설정 하면되고

해당 인터럽트 백더 함수에 해당 인터럽트가 발생되면 처리될 소스를 코딩하면 된다.

 
 
-----------------------------------------------------------------------------------------
 
void EXTI_Configuration(void)
{
    EXTI_InitTypeDef EXTI_InitStructure;
 
    /* Configure gpio as input : Button Left-WKUP */
    /* Connect EXTI Line to gpio pin */
    //특별한 용도로 사용함을 설정 한다.
    GPIO_EXTILineConfig(GPIO_PORTSOURCE_KEY, GPIO_PINSOURCE_KEY1);
 
    /* Configure EXTI Line to generate an interrupt */
    EXTI_InitStructure.EXTI_Line    = GPIO_EXTI_Line_KEY1;  //특성 설정을 한다.
    EXTI_InitStructure.EXTI_Mode    = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure); // 인터럽트를 활성화 한다.


-----------------------------------------------------------------------------------------
 
 
 
GPIO_EXTILineConfig(); 는 특수 모드로 사용되는것을 설정하고

EXTI_Init(); 외부 인터럽트를 설정 한다.

 

 

'공부 > STM32' 카테고리의 다른 글

관심 가는 STM32F30x  (0) 2012.11.30
STM32/STM32 시리얼 또는 USB 다운로드 지원 툴  (0) 2012.11.13
[STM32] Source 보기 6  (0) 2012.11.09
[STM32] Source 보기 5  (0) 2012.11.09
[STM32] Source 보기 4  (0) 2012.11.09

+ Recent posts