打印

STM IO中断问题

[复制链接]
3320|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
静水深流|  楼主 | 2008-10-5 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IO, STM, pi, TI, gp
用I/O做按键中断时候我选用PA11,PA12,PB8,PB9四个口做上拉输入作中断。
PA11,PA12中断成功,单是PB8,PB9用同样的方法确做不出来。

  NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);



    GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource11|GPIO_PinSource12);///E………………无论设不设置此句,都是中断A口,把GPIO_PortSourceGPIOA改写成GPIO_PortSourceGPIOB 也是中断A口?????????????搞不明白?????????????
  /* Configure EXTI Line10 to generate an interrupt on falling edge */  
  EXTI_InitStructure.EXTI_Line = EXTI_Line11|EXTI_Line12;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising ;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
在调试窗口外设查看窗显示的中断源一直是GPIOA,
当GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource11|GPIO_PinSource12);///应该显示GPIPOB才对
沙发
zyok| | 2008-10-5 16:36 | 只看该作者

...

1.NVIC配置时只使能了外部中断线15-10,你用的PB8和PB9对应的中断未使能
   NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQChannel;
2.GPIO配置时如是PB口,你的GPIO_PinSource就应改成:
   GPIO_PinSource8|GPIO_PinSource9

使用特权

评论回复
板凳
静水深流|  楼主 | 2008-10-7 19:25 | 只看该作者

我用的是评估版芯片

我试过这样更改,但是中断只有PA11,PA12,两个口,也就是说无论怎样设置,结果都一样的。我还试着把设置中断语句(GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource11|GPIO_PinSource12);)屏蔽掉(应该不会发生中断才对),也是发生中断。我用的是keil 开发环境.会不会编译器设置有问题?
芯片买的比较早,是买的力源代理的STM32F103RBT6,当时他们说是评估用的样片,样片会不会有不完善的地方?

使用特权

评论回复
地板
香水城| | 2008-10-7 21:13 | 只看该作者

请楼主列出你真正用的完整程序,目前程序不完整而且有很

比如,3楼说屏蔽语句(GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource11|GPIO_PinSource12);)后PA11和PA12还有中断:这个语句是关于GPIOB的,但你却关注不相干的PA11和PA12,这是个明显的漏洞。

1楼的程序也有漏洞,发帖子就有很多漏洞,可以推断你的程序也很不严谨。

使用特权

评论回复
5
静水深流|  楼主 | 2008-10-9 09:37 | 只看该作者

谢谢

谢谢指教

使用特权

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

本版积分规则

3

主题

16

帖子

0

粉丝