一个简单的按键中断;非常详细的代码;适合初学者呵呵;
//#include<stm32f10x.h>
//void NVIC_Configuration(void)
//{
// NVIC_InitTypeDef NVIC_InitStructure;
//
// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//
// NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;
//
// NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
// NVIC_InitStructure.NVIC_IRQChannelSubPriority =1;
// NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
// NVIC_Init(&NVIC_InitStructure);
//}
//
//
//void EXTI_Configuration(void)
//{
// EXTI_InitTypeDef EXTI_InitStructure;
// EXTI_DeInit();
// GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource8);
// GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource9);
// EXTI_InitStructure.EXTI_Line = EXTI_Line8|EXTI_Line9;
// EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
// EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;//_Falling;
// EXTI_InitStructure.EXTI_LineCmd = ENABLE;
// // EXTI_ClearITPendingBit(EXTI_Line8);
//
// EXTI_Init(&EXTI_InitStructure);
//}
//
//void GPIO_Configuration(void)
//{
// GPIO_InitTypeDef GPIO_InitStructure;
//
//// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
//// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
//
// GPIO_InitStructure.GPIO_Pin = 0xff;
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
// GPIO_Init(GPIOA,&GPIO_InitStructure);
//
//
//
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
// GPIO_Init(GPIOB,&GPIO_InitStructure);
//
//
//
//}
//
//
//
//void EXTI9_5_IRQHandler()
//{
// if(EXTI_GetITStatus(EXTI_Line8)!= RESET)
// {
// GPIO_SetBits(GPIOA, GPIO_Pin_0);
// EXTI_ClearFlag(EXTI_Line8);
// }
// else if(EXTI_GetITStatus(EXTI_Line9)!= RESET)
// {
// GPIO_SetBits(GPIOA, GPIO_Pin_1);
// EXTI_ClearFlag(EXTI_Line9);
// }
//}
//
// void RCC_ClockInit()
//{
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8,ENABLE);
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM9,ENABLE);
//}
//
//
//
//int main()
//{
//RCC_ClockInit();
//GPIO_Configuration();
//
//GPIO_ResetBits(GPIOA,0xff);
//NVIC_Configuration();
//EXTI_Configuration();
// while(1)
// { ;
// }
//}
STM32 中断优先级:STM32 的中断通道可以被配置为响应式优先级或抢占式优先级。 抢占式优先级:抢占式优先级的中断会打断当前的主程序或者中断程序运行(中断嵌套) ...
STM32中断优先级相关概念与使用笔记 首先要明确基本概念 1.ARM cortex_m3内核支持256个中断(16个内核+240外部)和可编程256级中断优先级的设置,与其相关的中断控制...
2.STM32 目前支持的中断共为 84 个(16 个内核+68 个外部) ,和 16 级可编程中 断优先级的设置(仅使用中断优先级设置 8bit 中的高 4 位,见后面解释)《...
STM32有84个中断,包括16个内核中断和68个可屏蔽中断, 具有16级可编程的中断...结合实例说明一下:假定设置中断优先级组为2,然后设置 中断3(RTC中断)的抢占...
Stm32 学习笔记3--中断_计算机硬件及网络_IT/计算机_专业资料。Stm32 学习笔记3--中断Stm32 学习笔记 3—外部中断 1、 外部中断程序编写方法 ① 时钟(RCC)初始...
STM32中断与事件_互联网_IT/计算机_专业资料。STM32F10x 参考手册 第一版 中断和...● 16 个可编程的优先等级; ● 低延迟的异常和中断处理; ● 电源管理控制; ...
stm32 EXTI 中断系统 编程步骤_计算机软件及应用_IT/计算机_专业资料。中断系统 编程步骤: 以“按 K1(按键 K1 接到 PB7 管脚)产生一次 EXTI 中断, L3 (...
STM32 目前支持的中断共 84 个(16 个内部+68 个外部),还有 16 级可编程的中断优先级的设置,仅使用中断优先 级设置 8bit 中的高 4 位。 STM32 可支持 68...
STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。 STM32可支持68个中断通道,已经固定...
实在的芯片例如 STM32 等就只有设计来可用才 64 级可编程优先级和 8 级中断嵌套。 对 64 级中断就是说:( INT0 到 INT63)这个大家比较好理解,其它的 64·...
闽公网安备 35021102001881号 
热门文档