ch55x usb未響應(yīng)中斷大BUG!stm32 usb不會(huì)有這種大bug??!

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();

??? }
}


EA = 1后代碼卡在了while循環(huán)里,USB_Enum_OK這個(gè)變量應(yīng)該是usb枚舉完成后才置位的。


把相關(guān)函數(shù)放在EA=1前面就可以正常,EA=1后面就不行了,因?yàn)檫@個(gè)是全局中斷使能啦啦!usb中斷優(yōu)先級比gpio中斷優(yōu)先級要高,就卡在那里了!


你好,這個(gè)不是bug,也跟中斷沒有關(guān)系,看你上面貼的代碼,是死在了while循環(huán)里面,你把那個(gè)while循環(huán)注釋掉就好了。


你好,這個(gè)不是bug,也跟中斷沒有關(guān)系。看你上面貼的代碼,是死在了while( USB_Enum_OK == 0 )循環(huán)里面,你把那個(gè)while循環(huán)注釋掉就好了。


//注意這個(gè)是中斷函數(shù),只要usb通信了,哪怕是當(dāng)前狀態(tài)usb通電狀態(tài),再加入usb信號,這個(gè)中斷都可以使能,一旦usb通信數(shù)據(jù)線拔掉又沒有功能,再插入usb數(shù)據(jù)線又有功能,請問這個(gè)是啥問題呢??

voidGPIOInterrupt( void ) interrupt INT_NO_GPIO? using 3? ? ? ? ? ? ? ? ? ? ? //GPIO??????,??????1

{?

kd_led();

}


這個(gè)中斷函數(shù)不管你while啥的,都是可以中斷到的,結(jié)果就是不行?。?!請問到底是啥問題,莫名其妙的!usb隨時(shí)通信,功能都可以,不通信這個(gè)功能就沒有了!?。?/p>


另外還有一個(gè)問題就是這個(gè)芯片對電流穩(wěn)定性很敏感,我用這個(gè)芯片去復(fù)位別的芯片,結(jié)果這個(gè)芯片就自動(dòng)重啟了!浪涌敏感有點(diǎn)高??!


IT0 = 1;

EX0 = 1; ??

你開啟gpio外部中斷是在while后,這兩句不啟用usb通訊跳過while循環(huán)代碼怎么執(zhí)行到呢?

若只是通過芯片io拉高低電平來模擬另外芯片外部復(fù)位環(huán)境,不會(huì)導(dǎo)致復(fù)位,芯片只是io口操作而已。具體情況可打我電話或者加我微信詳細(xì)溝通一下,18951773083這是我手機(jī),微信同號。


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循壞就搞定了!!
}



IT0 = 1;

EX0 = 1; ??

你開啟gpio外部中斷IN0(P3.2)??

跟我那個(gè)P3.1沒有任何關(guān)系!


只要usb通信了,哪怕是當(dāng)前狀態(tài)usb通電狀態(tài),再加入usb信號,這個(gè)中斷都可以有功能,一旦usb通信數(shù)據(jù)線拔掉又沒有功能,再插入usb數(shù)據(jù)線又有功能,請問這個(gè)做如何解釋??


第一次若只是上電運(yùn)行程序,肯定不會(huì)影響你的gpio中斷。當(dāng)usb通訊后再去掉d+ d-線的話會(huì)進(jìn)掛起中斷,我們例程中會(huì)將芯片睡眠,不知道你的代碼是怎么處理的,有可能后面就將芯片睡眠了。


例程中會(huì)將芯片睡眠!如何關(guān)閉這個(gè)功能!謝謝?。∥倚璁?dāng)usb通訊后再去掉d+ d-線,不能影響我的芯片功能??!


您好,TP例程在USB收到掛起信號之后就進(jìn)入睡眠,該功能集成在LIB庫內(nèi)部無法修改。如果對USB有自定義開發(fā)需求,可以嘗試使用通用USB例程進(jìn)行開發(fā),參考http://www.findthetime.net/downloads/CH554EVT_ZIP.html


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频