打印

中断判断进不去

[复制链接]
2592|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
树缠藤|  楼主 | 2015-3-4 08:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, GPIO, IO, gp, TI
STM32L05C8T6处理器开发,用外部PA0中断,下降沿触发,断点调试,当PA0下降沿后能够进入中断服务程序,但是进入以后调用的库函数HAL_GPIO_EXTI_IRQHandler中再次判断中断的时候__HAL_GPIO_EXTI_GET_IT进不去, if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
  {
    __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
    HAL_GPIO_EXTI_Callback(GPIO_Pin);
  }执行不了,请问什么原因?
沙发
popeye021| | 2015-3-4 09:31 | 只看该作者
外部的信号是个什么样的波形?你的断点设置在哪里了?
if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) 后面的语句是引脚为高电平时才执行。

使用特权

评论回复
板凳
树缠藤|  楼主 | 2015-3-4 13:33 | 只看该作者
popeye021 发表于 2015-3-4 09:31
外部的信号是个什么样的波形?你的断点设置在哪里了?
if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET) 后 ...

外部信号就是类似按键,平时高电平,按下低电平产生一个下降沿,能够检测到下降沿进入中断处理程序,(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)貌似不是指外部引脚的信号电平,应该是中断寄存器的标志位吧

使用特权

评论回复
地板
popeye021| | 2015-3-4 14:10 | 只看该作者
树缠藤 发表于 2015-3-4 13:33
外部信号就是类似按键,平时高电平,按下低电平产生一个下降沿,能够检测到下降沿进入中断处理程序,(__H ...

如果确认HAL_GPIO_EXTI_GET_IT函数是获得中断标志位,那你把if语句改为if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin))试试。我在用STM8的时候遇到过一个类似的bug,换一种形式就正常了。
还有,确认读取的是正确的标志位,或者直接用寄存器操作读取试试。

使用特权

评论回复
5
mmuuss586| | 2015-3-4 21:34 | 只看该作者
换上升沿中断,验证下就知道了;

使用特权

评论回复
6
小浣熊| | 2015-3-5 20:36 | 只看该作者
可以试试

使用特权

评论回复
7
songchenping| | 2015-3-6 09:08 | 只看该作者
有些接口是不支持断点调试的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

63

帖子

0

粉丝