STM32 NVIC怎样配置中断优先级

STM32 NVIC怎样配置中断优先级,第1张

可以参照STM32提供的库函数,中断优先级有抢占优先级和响应优先级之分,可以在NVIC寄存器里进行响应配置,优先级数字越小代表的优先级越高。STM32提供的库函数有如下的 *** 作,

NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn //中断线1全局中断

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2//抢占优先级为2

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0 //响应优先级为0

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE //允许EXTI0_IRQn中断

NVIC_Init(&NVIC_InitStructure)

你可以下载STM32固件库使用手册进行学习

相同抢占优先级的情况下,响应优先级的数值越小,优先级越高,比如相应优先级为0和1的中断同时到达将会先响应优先级为0的中断。如果优先级为1的中断正在运行,这时0中断到达,将会先暂停1去执行0,等0执行完毕再回到1.

选择中断分组也就是选择用于分别表达抢先式优先级和子优先级的位数,即用多少位来表达抢先式优先级,多少位来表达子优先级(表达优先级一共用到8位,不同的分组导致分配给两种优先级的位数不同),一般情况下如果你的应用中优先级级数不多的话建议选分组0和分组1就足够了,具体内容可以去看下《Cortex-M3 权威指南》宋岩先生译的那本书,个人觉得讲的挺不错的~*_*


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11134065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存