五、中断编程ARMCoetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置
对于STM32F10xxx产品(小容量、中容量和大容量)产品,支持76个中断(16个内部+60个外部),互联型产品支持的中断共84个(16个内部+68个外部)
有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位
4bit的中断优先级可以分成2组,从高位看,前面定义的是抢占式优先级,后面是响应优先级
按照这种分组,4bit一共可以分成5组第0组:所有4bit用于指定响应优先级;第1组:最高1位用于指定抢占式优先级,后面3位用于指定响应优先级;第2组:最高2位用于指定抢占式优先级,后面2位用于指定响应优先级;第3组:最高3位用于指定抢占式优先级,后面1位用于指定响应优先级;第4组:所有4位用于指定抢占式优先级
所谓抢占式优先级和响应优先级,他们之间的关系是:具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套
当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理
如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个
每一个中断源都必须定义2个优先级
c文件中定义了几个关于中断的函数:voidMY_NVIC_Init(u8NVIC_PreemptionPriority,u8NVIC_SubPriority,u8NVIC_Channel,u8NVIC_Group);//设置中断其中,NVIC_Channel参数定义在stm32f10x_nvic
中断函数入口名(Ha