nvic的配置

1.设置优先级分组,HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_2) 设置优先等级组为2
意思就是GROUP_2的意思是抢占式优先级有两位,子优先级有两位,假如是GROUP_3的话就是抢占式优先级有3位,子优先级有1位 。在实际工程中该函数在stm32f1xx_hal.c文件中的HAL_lnit中被调用了

(一个字节的高四位为stm32储存优先等级组分组信息(cotex内核的话是有8位来存储的,只不过stm32只用了高4位),)那么可能情况有以下几种
抢占优先级 子优先级
0 4
1 3
2 2
3 1
4 0

**2.**设置中断优先级
HAL_NVIC_SetPriority(中断类型,抢占优先级,子优先级)
案例 HAL_NVIC_SetPriority(USART1_IRQn,1,0) 该案例为 usart1的中断优先级配置,
中断类型包括
1系统中断类型
有譬如HardFault_IRQn ,PendSV_IRQn 等,
2nvic的外部中断
包括了WWDG_IRQn,DMA2_Channel2_IRQn 等好多其他的类型,

3 设置中断使能
HAL_NVIC_EnableIRQ(中断类型)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于STM32系列的微控制器,NVIC(Nested Vectored Interrupt Controller)是用于管理中断的关键模块。通过配置NVIC,可以设置中断优先级、使能特定中断、清除中断标志等。 以下是配置NVIC的一般步骤: 1. 确定需要配置的中断源。首先,查阅芯片手册或相关文档,了解可用的中断源以及它们的优先级。 2. 设置中断优先级分组。NVIC使用优先级分组来确定中断优先级的编码方式。可以通过设置SCB(System Control Block)寄存器中的PRIGROUP位来选择分组方式。不同的分组方式会影响中断优先级编码的位数。 3. 配置中断向量表。在代码中,需要定义中断处理函数,并将其放置在正确的中断向量表位置。在STM32中,中断向量表通常位于代码的起始位置,可以通过编译器选项或链接脚本来指定。 4. 配置中断优先级。使用NVIC模块提供的函数,将中断源与相应的优先级关联起来。通过调用NVIC_SetPriority()函数,可以设置中断源的优先级。 5. 使能中断。通过调用NVIC_EnableIRQ()函数,使能相应的中断源。这样,当中断源触发时,相应的中断处理函数将被调用。 6. 清除中断标志。在中断处理函数中,根据需要清除中断标志。有些中断源会自动清除标志,而其他一些可能需要手动清除。 需要注意的是,具体的配置步骤和函数可能会因使用的STM32系列和开发环境的不同而有所差异。因此,在进行NVIC配置时,请参考相关的芯片手册、参考手册或官方文档,以确保正确配置中断。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值