标题: stm32的中断配置问题 [打印本页]

作者: 放眼天下    时间: 2019-7-8 21:16
标题: stm32的中断配置问题
看了32的中断库函数配置,一直有一个问题,这个响应优先级和抢占优先级到底是一句什么配置的。从数字上看就是,两者之和相加等于4.如下图:
,那么设置一个中断,它的抢占优先级和响应优先级除了满足是和为4之外还有什么别的限制吗,比如说我随便用一个中断,抢占优先级是3,那么响应优先级应该是1,这样对程序有什么影响吗?

作者: 鹏博士PBs    时间: 2019-7-9 10:50
目前我也一直学STM32F103的芯片
作者: yzwzfyz    时间: 2019-7-9 17:19
仔细读手册
作者: SUPER111111    时间: 2019-7-9 20:43
根据你的程序的执行顺序设置中断啊   不能乱设置  不然会报错的
作者: 放眼天下    时间: 2019-7-10 11:00
SUPER111111 发表于 2019-7-9 20:43
根据你的程序的执行顺序设置中断啊   不能乱设置  不然会报错的

我想知道是怎么设置的,我看历程都是满足和等于4,并没有说抢占和响应优先级分别应该设置为多少
作者: zichenjushi    时间: 2019-7-19 18:39
要看你中断优先级分组是什么 假设是x(x=0~4),抢占优先级就只能设置为0~(2^x)-1,响应优先级只能设置为0~【2^(4-x)】-1,并非楼主说的相加为4。
作者: cjm82    时间: 2019-7-19 20:47
32的抢占优先级 和从优先级概念大概就是高抢占优先级(数字小)可以打断低抢占优先级,比如中断A 抢占优先级 0 从优先级4  中断B 抢占2 从0,那么A可以打断B,反之则不行.如果两个中断抢占一样,则高从优先级不能打断正在执行的同抢占优先级低从优先级的中断.两个同抢占优先级的中断,CPU会优先响应高从优先级的中断.比如中断C 抢占1 从 1 中断D 抢占1 从2, 中断E 抢占1 从 3 ,假设CPU正在执行中断E,突然中断C 和D都有中断请求,那么CPU继续执行直到E执行完,然后根据C 和D的从优先级,优先响应C.
抢占优先级和从优先级用4位来配置,比如你配置1位抢占优先级 3位从优先级,那么你就可以对某个中断设置2个抢占优先级(0---1) 和8个从优先级(000-111).如果设置成4位抢占 0位从,(16个抢占优先级,0个从)则成了类似51的中断模式,如果设置成0位抢占,4位从(0个抢占,16个从),则中断不能打断中断.




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1