STM32
直播中

云甫太

7年用户 184经验值
私信 关注
[问答]

滴答定时器程序无法运行

今天刚学习 原子哥给的EXti库函数例程,但我没有使用里面给的查询方式的滴答定时器程序,而是用的中断方式的直接用库函数的滴答定时器,可程序无法运行。。但去掉delayms后程序正常,感觉外部中断服务程序里面若是使用中断方式的滴答定时器会造成两个中断有冲突?不知道是不是呀?
void EXTI15_10_IRQHandler(void)
{   
delay_ms(10);    //消抖        <---------------------此处若用中断方式的滴答定时器,程序无法运行。。。求原子哥赐教。。
   
if (STM_EVAL_PBGetState(Button_KEY0) == 0x00)  //按键按下:低电平有效
  {
  STM_EVAL_LEDToggle(LED1);
  }
else if (STM_EVAL_PBGetState(Button_KEY1) == 0x00)  //按键按下:低电平有效
  {
  STM_EVAL_LEDToggle(LED2);
  }
/* Clear the Key Button EXTI line pending bit */  
EXTI_ClearITPendingBit(BUTTON0_EXTI_LINE);  //清除EXTI13线路挂起位
EXTI_ClearITPendingBit(BUTTON1_EXTI_LINE);  //清除EXTI15线路挂起位
}

回帖(1)

刘文娟

2019-6-12 11:26:30
不要用中断方式的滴答时钟来做延时!!
这里为什么会死,你软件仿真下,看看跑到哪里去了?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分