现象:原来一直使用sys
tick(10ms)来扫描键盘的,当程序加入HID程序后(神舟IV
开发板程序改动而来),USB线没有插上电脑的时候systick还是可以进中断的,当USB线插上的时候systick中断就进不了了,插上之后再拔掉也还是进不了systick的中断。整个过程中其他中断都是正常的。
目前采用的办法: 目前放弃了在使用USB的时候同时使用systick中断,程序关闭USB的时候再初始化一下systick,程序如下就可以使用systick了:
NVIC_InitStructure.NVIC_IRQChannel = OTG_FS_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 5;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = DISABLE;
NVIC_Init(&NVIC_InitStructure);
USB_Cable_Config(DISABLE);//关闭USB连接
MYSet_systick();//10ms中断
问题:1. 程序中关闭USB有什么好的办法,关闭之后还要可以再开启的?我目前是使用的关中断和关连接。
2. 上面的现象是什么原因?USB使用的时候为什么systick中断进不了?