cypan 发表于 2020-7-29 13:38:20

STM32 F030 PA0不能进外部中断函数

跪求大神帮忙看看,是不是配置的代码错误了。仿真时外部给低电平不进中断服务函数。:Q
以下是我写的代码
void EXTIX_Init(void)
{
EXTI_InitTypeDef EXTI_InitStruct;
NVIC_InitTypeDef NVIC_InitStruct;
GPIO_InitTypeDef GPIO_InitStructure;

//OC_Init(); //¹âñî³õʼ»¯
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//ʹÄÜSYSCFGʱÖÓ
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_2;
GPIO_Init(GPIOA, &GPIO_InitStructure);

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);//PA0 Á¬½Óµ½ÖжÏÏß0



EXTI_InitStruct.EXTI_Line = EXTI_Line0;
EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;//ÖжÏʼþ
EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling; //ÉÏÉýÑØ´¥·¢
EXTI_InitStruct.EXTI_LineCmd = ENABLE;//ÖжÏÏßʹÄÜ
EXTI_Init(&EXTI_InitStruct);


NVIC_InitStruct.NVIC_IRQChannel = EXTI0_1_IRQn;//ÍⲿÖжÏ0
NVIC_InitStruct.NVIC_IRQChannelPriority = 0x04;//ÇÀÕ¼ÓÅÏȼ¶2
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStruct);
EXTI_ClearITPendingBit(EXTI_Line0);

}
void EXTI0_1_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line0)!= RESET )
{
EXTI_ClearITPendingBit(EXTI_Line0);
}
// if((EXTI->PR & EXTI_Line0) !=(uint32_t)RESET)
// {
//EXTI_ClearITPendingBit(EXTI_Line0);
//
// }
}


陌路夕颜 发表于 2020-7-30 08:56:13

把触发条件EXTI_Trigger_Falling改成Low试试

李康1202 发表于 2020-7-30 09:50:10

顶一下

废鱼 发表于 2020-7-30 17:26:02

建议楼主检查一下PA0是不是被重新配置过,从代码上看配置是可以的。考虑换成其他的测试一下,注意看一下手册中PA0的功能,是不是有复用的。

cypan 发表于 2020-8-8 20:27:16

陌路夕颜 发表于 2020-7-30 08:56
把触发条件EXTI_Trigger_Falling改成Low试试

谢谢,我已经找到原因了.

cypan 发表于 2020-8-8 20:28:05

安 发表于 2020-7-30 17:26
建议楼主检查一下PA0是不是被重新配置过,从代码上看配置是可以的。考虑换成其他的测试一下,注意看一下手 ...

已解决了,硬件问题,单片机坏掉了.非常感谢
页: [1]
查看完整版本: STM32 F030 PA0不能进外部中断函数