请教关于STM32的外部中断初始化问题

[复制链接]
5343|7
 楼主| grwzh 发表于 2010-8-3 23:02 | 显示全部楼层 |阅读模式
我的STM32芯片的GPIO上GPIOA的PIN3和GPIOB上PIN3均硬件连接至外部中断,我该如何初始化设置中断呢?
香水城 发表于 2010-8-4 08:36 | 显示全部楼层
不能这么配置。
 楼主| grwzh 发表于 2010-8-4 14:11 | 显示全部楼层
谢谢香水城的回复,但不明白的是那该怎么配置呢?如果不能配置,是不是STM32只能同时有16个外部中断呀?谢谢!
 楼主| grwzh 发表于 2010-8-4 14:27 | 显示全部楼层
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource3);
  /* Configure EXTI Line9 to generate an interrupt on falling edge */
  EXTI_InitStructure.EXTI_Line = EXTI_Line3;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);


  GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource3);
  /* Configure EXTI Line9 to generate an interrupt on falling edge */
  EXTI_InitStructure.EXTI_Line = EXTI_Line3;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);

照上述程序设置,GPIOA的PIN3中断无响应,但如果将设置顺序呼唤,则GPIOB的PIN3中断无响应!
香水城 发表于 2010-8-4 14:28 | 显示全部楼层
STM32有20条外部中断线,其中有16个来源于外部I/O端口,如下图,PA0、PB0、PC0....PG0对应EXTI0,PA1、PB1、PC1....PG1对应EXTI1,等等,每个中断线上只能选择一个外部I/O线。
STM32_EXTI.GIF
 楼主| grwzh 发表于 2010-8-4 18:13 | 显示全部楼层
那也就是说STM32只能有16个外部IO中断源,并且每个中断的IO口线不能相同,比如,EXTI15只能同时赋予GPIOA-GPIOG中的其中一个?
香水城 发表于 2010-8-4 18:24 | 显示全部楼层
那也就是说STM32只能有16个外部IO中断源,并且每个中断的IO口线不能相同,比如,EXTI15只能同时赋予GPIOA-GPIOG中的其中一个?
grwzh 发表于 2010-8-4 18:13


是的! 有什么问题吗?
 楼主| grwzh 发表于 2010-8-5 12:30 | 显示全部楼层
呵呵,刚接触STM32的时候,一直以为STM32芯片所有的GPIO都可以同时设置成外部中断方式!现在明白了,还是要谢谢楼上的耐心解答!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

29

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部