查看: 4848|回复: 3

外部中断的双边沿触发是不是都只能进同一个中断函数啊

[复制链接]

3

主题

5

帖子

111

积分

中级工程师

Rank: 2

积分
111
发表于 2022-12-23 10:05:34 | 显示全部楼层 |阅读模式
如题,看了下gpio唤醒的外部中断实例,发现如果是双边沿触发的话,在中断函数中无法判断是上升沿还是下降沿,是确实无法判断还是我没找到对应的判断语句啊
回复

使用道具 举报

154

主题

846

帖子

4624

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4624
发表于 2022-12-30 18:36:23 | 显示全部楼层
这时只能再去判断IO口的高低电平,来确认,到底是上升沿还是下降沿。
回复

使用道具 举报

3

主题

5

帖子

111

积分

中级工程师

Rank: 2

积分
111
 楼主| 发表于 2023-4-7 09:34:21 | 显示全部楼层
        FL_GPIO_SetExtiLine14(GPIO,FL_GPIO_EXTI_LINE_14_PD9);
        extiInitStruct.input       = FL_GPIO_EXTI_INPUT_GROUP3;         
        extiInitStruct.filter      = FL_ENABLE;                     
        extiInitStruct.triggerEdge = FL_GPIO_EXTI_TRIGGER_EDGE_BOTH;
        FL_EXTI_Init(FL_GPIO_EXTI_LINE_14,&extiInitStruct);   
对于上述初始化,第一句的中断线选择引脚会触发一次中断,如果放到后面会导致初始化后无条件中断置位一次
回复

使用道具 举报

154

主题

846

帖子

4624

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4624
发表于 2023-4-11 08:31:38 | 显示全部楼层
玖玖 发表于 2023-4-7 09:34
FL_GPIO_SetExtiLine14(GPIO,FL_GPIO_EXTI_LINE_14_PD9);
        extiInitStruct.input       = FL_GPIO_EXTI_IN ...

是的,因为引脚初始化很可能带来,内部电平的不确定性。
步骤 大概是 先初始化引脚,再开引脚中断,然后清一下中断标志,最后开NVIC使中断生效。
回复

使用道具 举报

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

本版积分规则

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