配置兩個(gè)引腳中斷,下次中斷中我想單獨(dú)關(guān)閉PA14中斷,請(qǐng)問(wèn)怎么關(guān)閉?

? ??配置兩個(gè)引腳中斷,下次中斷中我想單獨(dú)關(guān)閉PA14中斷,請(qǐng)問(wèn)怎么關(guān)閉?

/* 配置喚醒源為 GPIO - PA14 */

? ? GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_PU);

? ? GPIOA_ITModeCfg(GPIO_Pin_14, GPIO_ITMode_FallEdge); // 下降沿喚醒

? ? PFIC_EnableIRQ(GPIO_A_IRQn);

? ? PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay);

? ? /* 配置喚醒源為 GPIO - PA15 */

? ? GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeIN_PU);

? ? GPIOA_ITModeCfg(GPIO_Pin_15, GPIO_ITMode_FallEdge); // 下降沿喚醒

? ? PFIC_EnableIRQ(GPIO_A_IRQn);

? ? PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay);


可以嘗試引腳中斷使能關(guān)閉:

image.png


謝謝,這個(gè)函數(shù)我有個(gè)疑問(wèn)。

R16_PA_INT_IF = pin;

這樣我如果調(diào)用這個(gè)函數(shù)兩次分別初始化兩個(gè)引腳,這個(gè) R16_PA_INT_IF?值 是不是就等于一個(gè)引腳的值了?

為什么不寫(xiě)成? R16_PA_INT_IF |= pin;? ?


R16_PA_INT_IF的對(duì)應(yīng)標(biāo)志位寫(xiě)1,是清除標(biāo)志用的,寫(xiě)1清零。清零后在下面配置R16_PA_INT_EN |= pin;來(lái)單獨(dú)使能IO中斷。


中斷里14 進(jìn)來(lái)時(shí)就關(guān)閉14中斷,使能15中斷 。但是當(dāng)15中斷來(lái)時(shí)候,如果14還有觸發(fā),還能進(jìn)14的中斷。?這句不是已經(jīng)關(guān)了,為什么還能進(jìn)14中斷? ?R16_PA_INT_EN &= ~GPIO_Pin_14;? ? ? ? ? ? ? //關(guān)閉中斷14? ? ? ? ??

關(guān)閉后還能 GPIOA_ReadITFlagBit(GPIO_Pin_14)?? ???


但是我如果兩個(gè)都關(guān)掉 如下兩行,是正常的,兩個(gè)中斷一起關(guān)閉了。為什么不能關(guān)一個(gè)?

R16_PA_INT_EN &= ~GPIO_Pin_15;? ? ?//關(guān)閉中斷15

R16_PA_INT_EN &= ~GPIO_Pin_14;? ? ?//關(guān)閉中斷14




__INTERRUPT

__HIGH_CODE

void GPIOA_IRQHandler(void)

{

? ? if(GPIOA_ReadITFlagBit(GPIO_Pin_14)) //14

? ? {

? ? ? ? ? ? R16_PA_INT_IF |= GPIO_Pin_15;? ?R16_PA_INT_EN |= GPIO_Pin_15;? ? //使能15中斷

? ? ? ? ? ? VsyncActive = 1;

? ? ? ? ? ? R16_PA_INT_EN &= ~GPIO_Pin_14;? ? ? ? ? ? ? //關(guān)閉中斷14

? ? ? ? ? ? PRINT("PA14 R16_PA_INT_EN=%x\r\n",R16_PA_INT_EN);


? ? }

? ? if(GPIOA_ReadITFlagBit(GPIO_Pin_15))//PICLK

? ? {

? ? ? ? PRINT("PA15 R16_PA_INT_EN=%x\r\n",R16_PA_INT_EN);

? ? }


? ? GPIOA_ClearITFlagBit( GPIO_Pin_14 | GPIO_Pin_15);

}



中斷標(biāo)志與使能標(biāo)志是分開(kāi)獨(dú)立工作的。即使沒(méi)有配置GPIO中斷,中斷標(biāo)志也會(huì)按復(fù)位值的中斷觸發(fā)配置去產(chǎn)生標(biāo)志。可以在中斷服務(wù)函數(shù)中添加一個(gè)判斷邏輯,檢查是否已啟用對(duì)應(yīng)位的中斷使能。
image.png


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

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