航天航海 发表于 2012-9-26 12:45:14

新手,STM32外部中断调试,Jlink在线调试可以进入中断,然后去掉Jlink就进不去了。

本人新手,正在做STM32f103的触摸屏驱动,用ADS1843E控制触摸屏。
用PD12引脚做外部中断,接受 ADS1843E发来的低电平。
中断配置
 
GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(TP_SPICS_PORT, &GPIO_InitStructure);        
/* 连接IO口到中断线 */
GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource12);
/* 配置中断线3为边升沿触发*/ 
EXTI_InitStructure.EXTI_Line = 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);
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn  ;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;//优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
 
 
 
//中断函数
int w=0x32;
void EXTI15_10_IRQHandler(void)//触屏中断
{
          if(EXTI_GetITStatus(EXTI_Line12) != RESET)
          {
                        LCD_Char(10,20,++w,WHITE);
                         EXTI_ClearITPendingBit(EXTI_Line12);
          }
}
 
 
可是不知道为什么我在线调试一切ok,一旦去掉jlink独立运行的时候就进不去中断了。
希望各位大虾踊跃发言,我需要思路。
 
 

发表于 2012-9-27 10:21:49

RE:新手,STM32外部中断调试,Jlink在线调试可以进入中断,然后去掉Jlink就进不去了。

其他功能呢?是不是都正常?可以用一个外部中断来测试一下。或者在中断中加串口输出,LED控制来判断是否进入中断。

ImCQ 发表于 2012-9-27 11:03:16

回复:新手,STM32外部中断调试,Jlink在线调试可以进入中断,然后去掉Jlink就进不去了。

中断太快了吧,你把这句挪到外面试试LCD_Char(10,20,++w,WHITE);在中断里面做个标志,触发它就可以了。
页: [1]
查看完整版本: 新手,STM32外部中断调试,Jlink在线调试可以进入中断,然后去掉Jlink就进不去了。