打印

使用STM32的PC0无法响应EXTI,请问该如何查找原因?

[复制链接]
3388|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
javenreal|  楼主 | 2012-4-15 20:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32, pc, TI, IO, pi
部分代码:

初始化GPIO:

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;


GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN ;


GPIO_Init(GPIOC, &GPIO_InitStructure);   
初始化nvic:

NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;


NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;      


NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;         


NVIC_Init(&NVIC_InitStructure);
初始化exti:

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource0);

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;

EXTI_InitStructure.EXTI_Line = EXTI_Line0;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);


EXTI_ClearITPendingBit(EXTI_Line0);
中断响应:
void EXTI0_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line0) != RESET)
    {
        TestIntProcess();  //  <<===== 不管按钮怎么按,代码一直执行不到此处。
        EXTI_ClearITPendingBit(EXTI_Line0);
    }
}
沙发
javenreal|  楼主 | 2012-4-15 20:30 | 只看该作者
mcu是STM32F205

使用特权

评论回复
板凳
lut1lut| | 2012-4-16 11:35 | 只看该作者
F2使用EXTI时,是不是也要使能SYSCFG的时钟啊。

你在调试窗口看看EXTI寄存器配置有效没?

使用特权

评论回复
地板
jgphu| | 2012-4-16 11:39 | 只看该作者
GPIO 的时钟有没有打开啊??

使用特权

评论回复
5
javenreal|  楼主 | 2012-4-16 14:45 | 只看该作者
F2使用EXTI时,是不是也要使能SYSCFG的时钟啊。

你在调试窗口看看EXTI寄存器配置有效没?
lut1lut 发表于 2012-4-16 11:35

就是它,呵呵

使用特权

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

本版积分规则

15

主题

48

帖子

1

粉丝