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 ⊙ )啊!SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource1);
该句放到EXTI配置最前面测试下。 多调试调试吧。 xmshao 发表于 2016-9-13 21:25
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource1);
该句放到EXTI配置最前面测试下。 ...
还是不行 高二毛 发表于 2016-9-14 08:39
多调试调试吧。
调试好久了,找不到具体原因才求助的~~ 换个端口 参考最新版本的库来做下。 xmshao 发表于 2016-9-14 11:24
换个端口 参考最新版本的库来做下。
换过端口了,之前是用PB10的,只有在启动时进入了中断,启动完后外部电平变化对其产生不了影响 担心你工程文件会不会多版本的搅在一起。
下载个最新库直接使用库里面的EXTI例程测试。 xmshao 发表于 2016-9-14 16:30
担心你工程文件会不会多版本的搅在一起。
下载个最新库直接使用库里面的EXTI例程测试。 ...
经过官方的最新库中断例子的测试,确认是硬件上是没问题的,向之前做项目的离职工程师求证也证实了不只只有一个版本的库,但是如果要修改成一个库工程量又很大,又不知道具体区别在什么地方,将具体库函数和定义也移植过去但还是不行,还请大神多指点迷津 我也遇到这个问题了,你是不是在下载到内存中调试?为了延长单片机的寿命,我是下载到内存中运行调试的,之后发现,下载到FLASH中调试完全没有问题
解决办法:下载到FLASH中调试
页:
[1]