硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3077|回复: 8
收起左侧

[有问必答] stm32f407igt6 PH10外部中断为什么不能使用?

[复制链接]

2

主题

16

回帖

22

积分

新手上路

野生程序员

积分
22
发表于 2017-11-13 20:51:04 | 显示全部楼层 |阅读模式
stm32f407igt6 PH10配置成了外部中断不能进入中断,可以普通io输入输出正常,还有TIM5 ETR也不能使用,请问有懂得吗?


void EXTIX_Init(void)
{
    NVIC_InitTypeDef   NVIC_InitStructure;
    EXTI_InitTypeDef   EXTI_InitStructure;


    GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOH, ENABLE);//使能GPIO时钟
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟
   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //KEY0 KEY1 KEY2对应引脚
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//普通输入模式
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100M
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  GPIO_Init(GPIOH, &GPIO_InitStructure);//初始化GPIOE2,3,4
     
   
    SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOH, EXTI_PinSource10);//PE2 连接到中断线2
    EXTI_ClearITPendingBit(EXTI_Line10);
  /* 配置EXTI_Line10 */
  EXTI_InitStructure.EXTI_Line = EXTI_Line10;//LINE0
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //上升沿触发
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE0
  EXTI_Init(&EXTI_InitStructure);//配置

NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;//外部中断4
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;//抢占优先级
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;//子优先级
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道
  NVIC_Init(&NVIC_InitStructure);//配置
      
}


//外部中断10服务程序
void EXTI15_10_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line10) != RESET )     
    {                 

        printf("外部中断10\r\n");
    }         
     EXTI_ClearITPendingBit(EXTI_Line10);//清除中断标志位  
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107652
QQ
发表于 2017-11-14 00:51:08 | 显示全部楼层
没问题,方便的话贴下你的中断配置代码,记得使能NVIC和引脚时钟。ETR不清楚,如果TIM5支持的话,也是没问题的,应该是你的配置问题。
回复

使用道具 举报

2

主题

16

回帖

22

积分

新手上路

野生程序员

积分
22
 楼主| 发表于 2017-11-15 07:44:45 | 显示全部楼层

回 eric2013 的帖子

eric2013:没问题,方便的话贴下你的中断配置代码,记得使能NVIC和引脚时钟。ETR不清楚,如果TIM5支持的话,也是没问题的,应该是你的配置问题。 (2017-11-14 00:51) 
代码贴过来了,麻烦检查下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107652
QQ
发表于 2017-11-15 10:06:52 | 显示全部楼层
没问题,我的SD卡检测引脚中断就是这么配置的,建议示波器看下是否有上升沿的信号触发
QQ截图20171115100038.jpg
回复

使用道具 举报

2

主题

16

回帖

22

积分

新手上路

野生程序员

积分
22
 楼主| 发表于 2017-11-15 11:00:54 | 显示全部楼层

回 eric2013 的帖子

eric2013:没问题,我的SD卡检测引脚中断就是这么配置的,建议示波器看下是否有上升沿的信号触发
(2017-11-15 10:06)
你能帮我试下PH10引脚吗?其他的引脚代码可以用,就是PH10不能用
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107652
QQ
发表于 2017-11-16 00:25:20 | 显示全部楼层

回 大笨蛋 的帖子

大笨蛋:你能帮我试下PH10引脚吗?其他的引脚代码可以用,就是PH10不能用

 (2017-11-15 11:00) 
只能有时间了测试了,我们的板子这个引脚是用来接芯片了,没有引出来。
不行你换个板子测试下,这个引脚也不是什么特殊的引脚,看看是不是你现在用的这个板子此引脚损坏了。
回复

使用道具 举报

2

主题

16

回帖

22

积分

新手上路

野生程序员

积分
22
 楼主| 发表于 2017-11-16 10:25:01 | 显示全部楼层

回 eric2013 的帖子

eric2013:只能有时间了测试了,我们的板子这个引脚是用来接芯片了,没有引出来。
不行你换个板子测试下,这个引脚也不是什么特殊的引脚,看看是不是你现在用的这个板子此引脚损坏了。 (2017-11-16 00:25) 
普通输入输出是可以的,就是不能外部中断
回复

使用道具 举报

0

主题

23

回帖

23

积分

新手上路

积分
23
发表于 2017-11-21 09:27:18 | 显示全部楼层

回 大笨蛋 的帖子

大笨蛋:普通输入输出是可以的,就是不能外部中断 (2017-11-16 10:25) 
程序中有没有用到其他的EXTI_PinSource10,比如PA10,PC10等
回复

使用道具 举报

2

主题

16

回帖

22

积分

新手上路

野生程序员

积分
22
 楼主| 发表于 2017-11-22 20:58:02 | 显示全部楼层

回 ccc1122 的帖子

ccc1122:程序中有没有用到其他的EXTI_PinSource10,比如PA10,PC10等 (2017-11-21 09:27) 
没有用到,外部中断线10只用ph10 就是不能进入中断,真是被坑了,
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-11 06:37 , Processed in 0.338340 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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