OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2382|回复: 4

外部中断同时可以有多少路?

[复制链接]

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-9-21
在线时间
10 小时
发表于 2017-9-22 09:48:14 | 显示全部楼层 |阅读模式
     0~4引脚有独立中断线,5~9共用一条中断线,10~15共用一条中断线,那么问题来了,如果我要同时用到5,6,7作为外部中断I/O怎么配置中断呢,怎么写中断服务函数呢?求大神不吝赐教!谢谢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1085
金钱
1085
注册时间
2015-5-22
在线时间
607 小时
发表于 2017-9-22 11:09:40 | 显示全部楼层
[mw_shl_code=c,true]void EXTI9_5_IRQHandler(void)
{

if(EXTI_GetITStatus(EXTI_Line5) != RESET) //确保是否产生了EXTI Line中断
    {
          EXTI_ClearITPendingBit(EXTI_Line5); //清除标志
          EXTI_ClearFlag(EXTI_Line5);

      if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5) ==  1))
         {
         
         }
         
       }
      
else if(EXTI_GetITStatus(EXTI_Line6) != RESET) //确保是否产生了EXTI Line中断
    {
          EXTI_ClearITPendingBit(EXTI_Line6); //清除标志
          EXTI_ClearFlag(EXTI_Line6);

      if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6) ==  1))
         {
         
         }
         
       }
      
else if(EXTI_GetITStatus(EXTI_Line7) != RESET) //确保是否产生了EXTI Line中断
    {
          EXTI_ClearITPendingBit(EXTI_Line7); //清除标志
          EXTI_ClearFlag(EXTI_Line7);

      if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7) ==  1))
         {
         
         }

       }
      
      
else if(EXTI_GetITStatus(EXTI_Line8) != RESET) //确保是否产生了EXTI Line中断
    {
          EXTI_ClearITPendingBit(EXTI_Line8); //清除标志
          EXTI_ClearFlag(EXTI_Line8);

      if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8) ==  1))
         {
         
         }
         
       }
      
      
else if(EXTI_GetITStatus(EXTI_Line9) != RESET) //确保是否产生了EXTI Line中断
    {
          EXTI_ClearITPendingBit(EXTI_Line9); //清除标志
          EXTI_ClearFlag(EXTI_Line9);

      if((GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_9) ==  1))
         {
         
         }
         
       }      
}[/mw_shl_code]
回复 支持 1 反对 0

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-9-21
在线时间
10 小时
 楼主| 发表于 2017-9-27 20:59:53 | 显示全部楼层
ADS1993 发表于 2017-9-22 11:09
[mw_shl_code=c,true]void EXTI9_5_IRQHandler(void)
{

谢谢解释,这个了解,但是优先级呢?那5~9是用一个通道的吧,怎么整呢
回复 支持 反对

使用道具 举报

0

主题

207

帖子

0

精华

高级会员

Rank: 4

积分
959
金钱
959
注册时间
2017-5-27
在线时间
108 小时
发表于 2017-9-27 22:40:38 | 显示全部楼层
17779131997 发表于 2017-9-27 20:59
谢谢解释,这个了解,但是优先级呢?那5~9是用一个通道的吧,怎么整呢

if else 决定处理顺序,硬件不能提供优先级判断
回复 支持 反对

使用道具 举报

3

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-9-21
在线时间
10 小时
 楼主| 发表于 2017-9-29 16:36:13 | 显示全部楼层
lanlzp 发表于 2017-9-27 22:40
if else 决定处理顺序,硬件不能提供优先级判断

了解了,多谢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 20:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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