📄 exti.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 + -