⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exti.c

📁 stm32初级例程
💻 C
字号:
/**************************************************************
**  精英STM32开发板
**  版本:V1.0
**  功能: 
***************************************************************/
#include <stm32f10x_lib.h>                        // STM32F10x Library Definitions
#include "STM32_Init.h"                           // STM32 Initialization


unsigned int ledPosExti = 0;                      // led position (from 0..7) for EXTI
unsigned int ledExti    = 0;


/*----------------------------------------------------------------------------
  EXTI15..10 Interrupt Handler
  外部中断15~10使用共享中断向量
 *----------------------------------------------------------------------------*/
void EXTI15_10_IRQHandler(void)
{
  if (EXTI->PR & (1<<12)) {                       // EXTI12 interrupt pending?/是否是外部中断12
    if ((ledExti ^=1) == 0) 
      GPIOC->ODR &= ~(1 << (ledPosExti+8));       // switch on LED //点亮LED
    else
      GPIOC->ODR |=  (1 << (ledPosExti+8));       // switch off LED	//熄灭LED

    EXTI->PR |= (1<<12);                          // clear pending interrupt/清除中断标志
  }
}

void EXTI2_IRQHandler(void)
{
  if (EXTI->PR & (1<<12)) {                       // EXTI12 interrupt pending?/是否是外部中断12
    if ((ledExti ^=1) == 0) 
      GPIOC->ODR &= ~(1 << (ledPosExti+8));       // switch on LED //点亮LED
    else
      GPIOC->ODR |=  (1 << (ledPosExti+8));       // switch off LED	//熄灭LED

    EXTI->PR |= (1<<12);                          // clear pending interrupt/清除中断标志
  }

}


/*----------------------------------------------------------------------------
  MAIN function
 *----------------------------------------------------------------------------*/
int main (void) {

  stm32_Init ();                                  // STM32 初始化
    
  while (1) {                                     // Loop forever
    ;
  } // end while
} // end main

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -