stm32f407 中断延时请请教?????

2019-07-21 05:22发布

void delay_ms(u16 nms)
{
        ntime = nms;
        
        SysTick_Config(168000);   //1ms 产生一次中断
        while(ntime);
        SysTick->CTRL=0x00;

}


void EXTI15_10_IRQHandler(void)
{
        //delay_ms(20);                              //此处加了延时后,中断就不响应了,请问是怎么回事啊????????????????
        if(EXTI_GetITStatus(EXTI_Line13) != RESET)
        {
                if(KEY_INT == 0)
                {
                        led_nvic_test = !led_nvic_test;        

                }                        
                EXTI_ClearFlag(EXTI_Line13);         //与下面的函数选择其一就可以了,实现的功能完全一样
                
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
正点原子
1楼-- · 2019-07-21 14:27
搞也搞不多高。
hpdell
2楼-- · 2019-07-21 15:51
回复【8楼】正点原子:
---------------------------------
我改过了,好像也还是不行,

#define __NVIC_PRIO_BITS          4       //我吧这个4改成1也不行,

NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);    /* set riority for Systick Interrupt */
maninman1981
3楼-- · 2019-07-21 18:07
 精彩回答 2  元偷偷看……
hpdell
4楼-- · 2019-07-21 22:30
回复【10楼】maninman1981:
---------------------------------
哦,原来是不能够进行调用systick的延时啊!!!!!!!!  但是有些人又说可以,搞不懂了哇!!??

一周热门 更多>