usb一旦沒有接入,比如說usb只接電源,不通信的時(shí)候,下面的函數(shù)一直卡在內(nèi)部,有什么辦法繞過去的哦!就是EA=1啟動(dòng),我別的功能都沒有用了(注意重點(diǎn)gpio中斷函數(shù)不執(zhí)行,執(zhí)行失敗),一直卡在里面!現(xiàn)在就是需要我usb萬一只是通電,不能影響我其他功能(GPIO中斷);要是usb通信的時(shí)候,也要能通信!
USBDeviceInit();?????????????????????????????????????????????????
? EA = 1;
//注意這個(gè)是中斷函數(shù),只要usb通信了,哪怕是當(dāng)前狀態(tài)usb通電狀態(tài),再加入usb信號,這個(gè)中斷都可以使能,一旦usb通信數(shù)據(jù)線拔掉又沒有功能,再插入usb數(shù)據(jù)線又有功能,請問這個(gè)是啥問題呢??
void GPIOInterruptCfg()
{
?? GPIO_IE &= ~bIE_IO_EDGE;??????????????????????????????????????????????????? //?/?????
//??? GPIO_IE |= bIE_IO_EDGE;????????????????????????????????????????????????? //??/?????
//??? GPIO_IE |= bIE_RXD1_LO;???????????????????????????????????????????????????? //RXD1?????????
?? GPIO_IE |= bIE_P3_1_LO;???????????
?? //P15\P14\P13?????;RST?????
//??? GPIO_IE |= bIE_P3_1_LO;???????????????????????????????????????????????????? //P31?????????
//??? GPIO_IE |= bIE_RXD0_LO;???????????????????????????????????????????????????? //RXD0??????????
?? IE_GPIO? = 1;?????????????????????????????????????????????????????????????? //GPIO????
?
?IP_EX|=bIP_GPIO;//注意這個(gè)中斷在while循壞就搞定了?。?br>}
IT0 = 1;
EX0 = 1; ??
你開啟gpio外部中斷IN0(P3.2)??
跟我那個(gè)P3.1沒有任何關(guān)系!
voidGPIOInterrupt( void ) interrupt INT_NO_GPIO? using 3? ? ? ? ? ? ? ? ? ? ? //GPIO??????,??????1
{?
kd_led();
}
void main( void )
{
??? CfgFsys( );
??kd_pwm_init();?
??kd_gpio_init();?
?
?? mDelaymS(5);??????????????????????????????????????????????????????????
?
?memset(TP,0,sizeof(TP));
?CTP_Info.x_max_pos = 0;
?CTP_Info.y_max_pos = 0;?
?CTP_Info.IRQ_Flag = 0;
?
?
?
?
?GT_Init();
?MAX_POINT = 5;?????????????????????????????????????????????????????
?MyManuInfo_Len = sizeof(MyManuInfo);
?MyProdInfo_Len = sizeof(MyProdInfo);
??GPIOInterruptCfg();
? USBDeviceInit();?????????????????????????????????????????????????????
? EA = 1;??????????????//注意就是卡在了這里,因?yàn)閡sb只通電了,USBDeviceInit?源碼也看不到,只有l(wèi)ib文件,把相關(guān)函數(shù)放在EA=1前面就可以正常,EA=1后面就不行了,因?yàn)檫@個(gè)是全局中斷使能啦啦!usb中斷優(yōu)先級比gpio中斷優(yōu)先級要高,就卡在那里了!?
????????????????????????????????????
?while( USB_Enum_OK == 0 )
?{
??
?};???????????????????????????????????????????
?
?IT0 = 1;
?EX0 = 1;??????????????????????????????????????????????????????????????? /* ??????????????????,?????ì?????? */
?
?CH554WDTModeSelect(1);????????????????????????????????????????????????? /* ?????????ú?????????· */
??? while(1)
??? {
??
????
??CH554WDTFeed(0);
??GT_Touch_Check();
??? }
}