[应用相关] Systick中断优先级问题

[复制链接]
 楼主| andygirl 发表于 2022-4-2 15:51 | 显示全部楼层 |阅读模式
ST, TI, ck, ic


  1. void delay_init()
  2. {
  3.     SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
  4.     fac_us=SystemCoreClock/8000000;
  5.     fac_ms=(u16)fac_us*1000;
  6. }

  7. void BSP_Delay_us(u32 nus)
  8. {
  9.     u32 temp;      
  10.     SysTick->LOAD=nus*fac_us;
  11.     SysTick->VAL=0x00;     
  12.     SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;
  13.     do
  14.    {
  15.        temp=SysTick->CTRL;
  16.    }while((temp&0x01)&&!(temp&(1<<16)));
  17.    SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
  18.    SysTick->VAL =0X00;      
  19. }


主频为72M,延时us函数。
问题:这样写的中断优先级是多少,没有设置SysTick_Handler,并且没有在中断服务函数里中任何事?
假设定义里一个定时器4,优先级如下,是否会抢断systick中断。即谁的优先级高

  1. void TIM4_NVIC_Configuration(void)
  2. {
  3.     NVIC_InitTypeDef NVIC_InitStructure;
  4.     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);  
  5.     NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;  
  6.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  7.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  8.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  9.     NVIC_Init(&NVIC_InitStructure);
  10. }



呐咯密密 发表于 2022-4-3 19:53 | 显示全部楼层
Systick中断属于内核中得中断,不进行配置默认是最低优先级,不会打断你的NVIC中断,但是是可设置的,具体需要自己研究。
kiwis66 发表于 2022-4-6 10:42 | 显示全部楼层
好像这个优先级比较低,
 楼主| andygirl 发表于 2022-4-7 10:35 | 显示全部楼层
呐咯密密 发表于 2022-4-3 19:53
Systick中断属于内核中得中断,不进行配置默认是最低优先级,不会打断你的NVIC中断,但是是可设置的,具体 ...

感谢!
优先级最低的话,不是能随便打断它了?
一被打断,嗯~~~不知道该怎么表达,就是觉得被打断了,不爽~
呐咯密密 发表于 2022-4-7 10:47 | 显示全部楼层
andygirl 发表于 2022-4-7 10:35
感谢!
优先级最低的话,不是能随便打断它了?
一被打断,嗯~~~不知道该怎么表达,就是觉得被打断了,不 ...

事实上确实是这样的,不过Systick一般用于给系统提供滴答时钟,用户最多是用它来延时,你的延时函数被打断还是挺正常的,如果不想被打断就去提高的他的优先级。不过不建议这么操作,毕竟一般的外部中断啥的都比这个Systick中断重要,如果你仅用于延时,被打断也没啥事。
 楼主| andygirl 发表于 2022-4-7 11:05 | 显示全部楼层
呐咯密密 发表于 2022-4-7 10:47
事实上确实是这样的,不过Systick一般用于给系统提供滴答时钟,用户最多是用它来延时,你的延时函数被打 ...

好的,
还是代码写的少了,有些问题确实需要在实际中去体验
tpgf 发表于 2022-5-1 16:51 | 显示全部楼层
我有一般都是默认的优先级了
sadicy 发表于 2022-5-1 17:18 | 显示全部楼层
一般就是用默认的优先级,还真是没考虑过被打断会怎样

不过,这个问题一提出来,好像确实把我难住了。
wakayi 发表于 2022-5-1 17:21 | 显示全部楼层
主要看它的作用重要不重要
wowu 发表于 2022-5-1 17:30 | 显示全部楼层
一般都是默认的了 不会提高它的优先级
xiaoqizi 发表于 2022-5-1 17:37 | 显示全部楼层
只要不影响使用就行
木木guainv 发表于 2022-5-1 17:59 | 显示全部楼层
感觉也没有必要调低
磨砂 发表于 2022-5-1 18:06 | 显示全部楼层
完全可以根据自己的需求进行调整
kiwis66 发表于 2022-5-5 09:30 | 显示全部楼层
应该默认就好吧,最好不要改了
 楼主| andygirl 发表于 2022-5-7 17:04 | 显示全部楼层
kiwis66 发表于 2022-5-5 09:30
应该默认就好吧,最好不要改了

嗯,默认的确实没发现有问题,就是脑补的过程中,对优先级的理解有偏差
您需要登录后才可以回帖 登录 | 注册

本版积分规则

94

主题

535

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部