只需一步,快速开始
208
大学生
使用道具 举报
systick配置函数中包含中断优先级的设置,如下: static __INLINE uint32_tSysTick_Config(uint32_t ticks) { ………… NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 SystemInterrupts */ ………… } 由于__NVIC_PRIO_BITS定义为4,上式中(1<<__NVIC_PRIO_BITS)- 1)=15,所以systick的中断优先级是最低的。 ----- 默认systick的优先级是最低的。 ----- /******************************************************************************** * 重新配置SysTick的中断优先级为最高,要不然SysTick延时中断抢占不了IO EXTI中断 * 因为SysTick初始化时默认配置的优先级是最低的 * 或者当你用其他定时器做延时的时候,要配置定时器的优先级高于IO EXTI中断的优先级 ********************************************************************************/ NVIC_SetPriority (SysTick_IRQn, 0); 把上面这条语句加到你的程序里面去就好了。
96
初中生
本版积分规则 发表回复 回帖后跳转到最后一页
联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 )
GMT+8, 2024-11-23 21:25 , Processed in 0.026672 second(s), 23 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.