打印

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

[复制链接]
4316|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中断无响应!

使用特权

评论回复
5
香水城| | 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 (21.6 KB )

STM32_EXTI.GIF

使用特权

评论回复
6
grwzh|  楼主 | 2010-8-4 18:13 | 只看该作者
那也就是说STM32只能有16个外部IO中断源,并且每个中断的IO口线不能相同,比如,EXTI15只能同时赋予GPIOA-GPIOG中的其中一个?

使用特权

评论回复
7
香水城| | 2010-8-4 18:24 | 只看该作者
那也就是说STM32只能有16个外部IO中断源,并且每个中断的IO口线不能相同,比如,EXTI15只能同时赋予GPIOA-GPIOG中的其中一个?
grwzh 发表于 2010-8-4 18:13


是的! 有什么问题吗?

使用特权

评论回复
8
grwzh|  楼主 | 2010-8-5 12:30 | 只看该作者
呵呵,刚接触STM32的时候,一直以为STM32芯片所有的GPIO都可以同时设置成外部中断方式!现在明白了,还是要谢谢楼上的耐心解答!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

29

帖子

0

粉丝