关于NVIC_PriorityGroupConfig()和NVIC_Init()

中断简单来说就是当cpu正在执行一个任务是,突然来了一个别的请求,cpu去响应这个请求

1.NVIC(Nested Vectored Interrupt Controller) 就是嵌套向量中断控制器;

2.设置中断优先级的分组

总共有4位二进制组成,分成抢占优先级和响应优先级

用NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup),(在misc.h文件中),这是一个有参无返回值的函数,参数范围包括

一共有五种分组(分组0~分组4)其中 NVIC_PriorityGroup_0为分组0,NVIC_PriorityGroup_1为分组1,NVIC_PriorityGroup_2为分组2,NVIC_PriorityGroup_3为分组3,NVIC_PriorityGroup_4为分组4

分组0: 0位抢占+4位响应(抢占:无,响应: 0~15)

分组1: 1位抢占+3位响应(抢占: 0~1, 响应: 0~7)

分组2: 2位抢占+2位响应(抢占: 0~3,响应: 0~3)

分组3: 3位抢占+ 1位响应(抢占: 0~7,响应: 0~1)

分组4: 4位抢占+0位响应(抢占: 0~15,响应:无)

注:优先级分组只能设置一 次,而且需要在主函数程序开头的地方设置,其作用的是整个程序,先分组再设置值

优先级的等级是数值越低,优先级越高

3.关于NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct),(在misc.h文件中)函数

这是一个结构体指针的函数,包含了四个属性,是设置一个关于某个中断初始化的函数

a.uint8_ t NVIC_ IRQChannel:中断请求的编号(位置、通道),在stm32f10x.h文件中选择所需要的中断源

b.uint8_ _t NVIC_ IRQChannelPreemptionPriority:该中断的抢占优先级数值(需要结合分组来选择数值)

c.uint8_ t NVIC IRQChannelSubPriority:该中断的响应优先级数值(需要结合分组来选择数值)

d.FunctionalState NVIC_ IRQChannelCmd:使能或失能该中断

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值