- void delay_init()
- {
- SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
- fac_us=SystemCoreClock/8000000;
- fac_ms=(u16)fac_us*1000;
- }
- void BSP_Delay_us(u32 nus)
- {
- u32 temp;
- SysTick->LOAD=nus*fac_us;
- SysTick->VAL=0x00;
- SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;
- do
- {
- temp=SysTick->CTRL;
- }while((temp&0x01)&&!(temp&(1<<16)));
- SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;
- SysTick->VAL =0X00;
- }
主频为72M,延时us函数。
问题:这样写的中断优先级是多少,没有设置SysTick_Handler,并且没有在中断服务函数里中任何事?
假设定义里一个定时器4,优先级如下,是否会抢断systick中断。即谁的优先级高
- void TIM4_NVIC_Configuration(void)
- {
- NVIC_InitTypeDef NVIC_InitStructure;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
- NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
- }
|