STM32-中断相关

STM32 为了适应不同的优先级组合,设置了 GROUP 的概念,组是一个大的框架,在组下分别分配了占先优先级与副优先级。每一个中断都有一个专门的寄存器(Interrupt Priority Registers)来描述该中断的占先式优先级及副优先级。在这个寄存器中STM32 使用4个二进制位描述优先级(Cortex-M3 定义了8位,但 STM32只使用了4位)。--转自《稀里糊涂学STM32》第三讲《事出有因》

1.Systick

一般NVIC优先级的设置都是通过NVIC_InitTypeDef中的NVIC_IRQChannelPreemptionPriorityNVIC_IRQChannelSubPriority,但Systick是通过CM3内核的函数NVIC_SetPriority()设置,这是因为Systick的中断号IRQn为-1,这两种设置方式存在如下对应关系

  1. NVIC_SetPriority(SysTick_IRQn, n);  
  2. n=0x00~0x03 设置Systick为抢占优先级0  
  3. n=0x04~0x07 设置Systick为抢占优先级1  
  4. n=0x08~0x0B 设置Systick为抢占优先级2  
  5. n=0x0C~0x0F 设置Systick为抢占优先级3 

具体请参考http://blog.csdn.net/sunjiajiang/article/details/7741715

 

2.正确设置一个中断,包括peripheral的中断使能,对应NVIC的配置,中断入口函数。同一peripheral的多个中断源往往对应同一个中断处理函数ISR,这时需要在ISR根据中断标志位进行判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值