★春后雨★ 发表于 2016-9-13 16:43:08

STM32F205无法进入外部中断处理函数(可进入串口中断)

想用一个外部中断PC1来计算外部脉冲的频率,每过2ms就上传一次数据并清0,但是不知为何无法进入中断()经检测软件上是可以检测到外部的电平变化)请各位大神看看我程序有什么遗漏的地方: RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOC , ENABLE); RCC_APB2PeriphResetCmd(RCC_APB2Periph_SYSCFG, ENABLE); gpio.GPIO_Pin = GPIO_Pin_1;gpio.GPIO_Mode =GPIO_Mode_IN;gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;GPIO_Init(GPIOC, &gpio); EXTI_InitTypeDef EXTI_InitStruct;EXTI_StructInit(&EXTI_InitStruct);EXTI_DeInit();EXTI_InitStruct.EXTI_Line = EXTI_Line1;EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising_Falling;EXTI_InitStruct.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStruct);SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource1); NVIC_InitTypeDef nvic;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);nvic.NVIC_IRQChannel = EXTI1_IRQn;                nvic.NVIC_IRQChannelPreemptionPriority = 0;nvic.NVIC_IRQChannelSubPriority = 1; nvic.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&nvic); void EXTI1_IRQHandler()//进不了处理函数{        if(EXTI_GetITStatus(EXTI_Line1) != RESET)        {                   num++;                   EXTI_ClearITPendingBit(EXTI_Line1);           } }             固件库是1.0.0版本的,找不到这个版本的例程,只找到1.4版本的但还是看不出具体的原因,求各位指点迷津~~~( ⊙ o ⊙ )啊!

xmshao 发表于 2016-9-13 21:25:42

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource1);
该句放到EXTI配置最前面测试下。

高二毛 发表于 2016-9-14 08:39:28

多调试调试吧。

★春后雨★ 发表于 2016-9-14 08:50:41

xmshao 发表于 2016-9-13 21:25
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource1);
该句放到EXTI配置最前面测试下。 ...

还是不行

★春后雨★ 发表于 2016-9-14 08:51:36

高二毛 发表于 2016-9-14 08:39
多调试调试吧。

调试好久了,找不到具体原因才求助的~~

xmshao 发表于 2016-9-14 11:24:15

换个端口 参考最新版本的库来做下。

★春后雨★ 发表于 2016-9-14 12:23:12

xmshao 发表于 2016-9-14 11:24
换个端口 参考最新版本的库来做下。

换过端口了,之前是用PB10的,只有在启动时进入了中断,启动完后外部电平变化对其产生不了影响

xmshao 发表于 2016-9-14 16:30:55

担心你工程文件会不会多版本的搅在一起。

下载个最新库直接使用库里面的EXTI例程测试。

★春后雨★ 发表于 2016-9-18 15:01:38

xmshao 发表于 2016-9-14 16:30
担心你工程文件会不会多版本的搅在一起。

下载个最新库直接使用库里面的EXTI例程测试。 ...

经过官方的最新库中断例子的测试,确认是硬件上是没问题的,向之前做项目的离职工程师求证也证实了不只只有一个版本的库,但是如果要修改成一个库工程量又很大,又不知道具体区别在什么地方,将具体库函数和定义也移植过去但还是不行,还请大神多指点迷津

243786753 发表于 2016-10-30 14:07:15

我也遇到这个问题了,你是不是在下载到内存中调试?为了延长单片机的寿命,我是下载到内存中运行调试的,之后发现,下载到FLASH中调试完全没有问题

解决办法:下载到FLASH中调试
页: [1]
查看完整版本: STM32F205无法进入外部中断处理函数(可进入串口中断)