本帖最后由 qq344269956 于 2014-12-8 15:11 编辑
我新搞了一个板子是STM32F102C8,使用JoyStickMouse例程,调试的时候发一个很大的问题。程序可以运行到
Set_System();
USB_Interrupts_Config();
Set_USBClock();
USB_Init();//程序可运行到这步
程序进行USB_Init();后运行到这个函数中
RESULT PowerOn(void)
{
uint16_t wRegVal;
USB_Cable_Config(ENABLE);//使能USB连接线
wRegVal = CNTR_FRES;
_SetCNTR(wRegVal); //强制USB复位
wInterrupt_Mask = 0;
_SetCNTR(wInterrupt_Mask);//屏蔽所有中断
_SetISTR(0);//清除中断标志位
wInterrupt_Mask = CNTR_RESETM | CNTR_SUSPM | CNTR_WKUPM;//设置中断屏蔽
_SetCNTR(wInterrupt_Mask);//开启中断后 /*问题出现在这个之后*/
return USB_SUCCESS;
}
开启中断后,出现程序跑飞了的现象,主要表现为调试时发现
运行到:
0x000000 0400 LSLS r0,r0,#16出现暂停
继续后,一直运行MOVS r0,r0
我想问一下是怎么回事?是不是 中断函数出问题了,中断函数那些我没有改过啊。在线等啊,有消息的话请QQ我 344269956,谢谢各位大神了。
补充一下:我查了一下 地址
#define USB_ISTR_RESET ((uint16_t)0x0400) /*!<USB RESET request */
但在这函数中打断点根本进不去。
|