野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10577|回复: 2

中断函数的小问题

[复制链接]
发表于 2017-11-20 22:34:15 | 显示全部楼层 |阅读模式
void EXTI4_IRQHandler(void)
  {
          GPIO_SetBits(GPIOB,GPIO_Pin_8);//蜂鸣器响
         delay_ms( 200);
         GPIO_ResetBits(GPIOB,GPIO_Pin_8);
  EXTI_ClearITPendingBit(EXTI_Line4);

  }新手请教为什么在中断函数里 PIN8置高后蜂鸣器一直响,拉低停止蜂鸣器响这句好像执行不到?


回复

使用道具 举报

发表于 2017-11-21 09:16:32 | 显示全部楼层
不要在中断里加延时
回复 支持 反对

使用道具 举报

发表于 2017-11-26 02:43:27 | 显示全部楼层
delay_ms这个是用的systick中断计数的
如果EXTI4中断级别和sysdtick是一样的 那就是systick中断打断不了exit4中断 导致你这个延时函数执行不过去
正确的办法的把systick的中断级别设置的比exti4高就可以了
一般开发板的源程序systick的中断都是最高级别吧
那你exti4的级别设置比他低就好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 23:59 , Processed in 0.026448 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表