张亚飞 发表于 2017-5-26 16:37:38

使用STM32cubemx的外部中断只能触发一次

配置截图在下边,还有外部输入的三路PWM方波的截图。 我们的需求是三个GPIO做外部中断,接三路PWM方波输入,方波周期为60ms,高电平20ms低电平40ms。
现在的问题是,GPIO的管脚只有配置成无上下拉模式,下降沿触发时才会收到中间那一路的波形一次,然后不再触发中断(注意三路中仅会触发中间那一路的波形)。如果改成上拉或者下拉模式以及触发方式,其中任何一种都不会触发中断。
我没有用过外部中断,不知道为什么会出现这样的问题。 哪位有经验的朋友给说下如何解决吧,谢谢。(今天在线等)




来)



zhao.zhao 发表于 2017-5-27 08:56:35

第一个图的第5列设为NO pull-up and NO pull-down 试试

张亚飞 发表于 2017-5-27 09:44:04

zhao.zhao 发表于 2017-5-27 08:56
第一个图的第5列设为NO pull-up and NO pull-down 试试

我在程序里边改成你说的无上拉模式,在截图里没改。只有改成无上拉模式然后是下降沿触发才会进来一次中断,之后就再触发不了中断了。

any012 发表于 2017-5-27 14:43:43

本帖最后由 any012 于 2017-5-27 14:44 编辑

你不是有stlink吗?用stlink看下是否能进到外部中断。
另,示波器截图,是单片机管脚的波形吗?

张亚飞 发表于 2017-5-27 16:51:38

any012 发表于 2017-5-27 14:43
你不是有stlink吗?用stlink看下是否能进到外部中断。
另,示波器截图,是单片机管脚的波形吗?
...

示波器的截图是输入的波形,用来触发外部中断的。

zhao.zhao 发表于 2017-5-28 09:04:37

看看中断函数
void EXTI4_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4);
}

张亚飞 发表于 2017-5-31 09:31:39

zhao.zhao 发表于 2017-5-28 09:04
看看中断函数
void EXTI4_IRQHandler(void)
{


外部中断,中断优先级,中断处理函数,翻转管脚的程序都在这了。







zhao.zhao 发表于 2017-5-31 10:00:13

设置引脚中断是对的,设置中断优先级也是对的,中断函数也没有问题,那问题在哪儿呢?中断回调函数中的PA.2#这个引脚初始化了没有?瞎猜的

张亚飞 发表于 2017-5-31 16:39:38

zhao.zhao 发表于 2017-5-31 10:00
设置引脚中断是对的,设置中断优先级也是对的,中断函数也没有问题,那问题在哪儿呢?中断回调函数中的PA.2 ...

找到问题了,跟配置没有关系。 电路有点问题,波形到cpu管脚时出了问题。 现在已经好了。
页: [1]
查看完整版本: 使用STM32cubemx的外部中断只能触发一次