×
单片机 > 单片机程序设计 > 详情

STM32 NVIC学习

发布时间:2020-05-18 发布时间:
|

阅读nvic:系统中断管理。 
我的理解——管理系统内部的中断,负责打开和关闭中断。 
基础应用1,中断的初始化函数,包括设置中断向量表位置,和开启所需的中断两部分。所有程序中必须的。 
用法: void NVIC_Configuration(void) 

NVIC_InitTypeDef NVIC_InitStructure;//中断管理恢复默认参数 
#ifdef  VECT_TAB_RAM   
//如果C/C++ CompilerPreprocessorDefined symbols中的定义了VECT_TAB_RAM(见程序库更改内容的表格) 
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); //则在RAM调试 
#else        //如果没有定义VECT_TAB_RAM 
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);//则在Flash里调试 
#endif        //结束判断语句 
//以下为中断的开启过程,不是所有程序必须的。 
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  
//设置NVIC优先级分组,方式。 
//注:一共16个优先级,分为抢占式和响应式。两种优先级所占的数量由此代码确定,NVIC_PriorityGroup_x可以是0、1、 2、3、4,分别代表抢占优先级有1、2、4、8、16个和响应优先级有16、8、4、2、1个。规定两种优先级的数量后,所有的中断级别必须在其中选择,抢占级别高的会打断其他中断优先执行,而响应级别高的会在其他中断执行完优先执行。 
//NVIC_InitStructure.NVIC_IRQChannel = 中断通道名; 
//开中断,中断名称见函数库 
//NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; 
//抢占优先级 
//NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  
//响应优先级 
//NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//启动此通道的中断 
//NVIC_Init(&NVIC_InitStructure);     //中断初始化 
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
TQ210天嵌开发板S5PV210 LED闪烁程序C语言代码记录