請教PA、PB中斷不能同時響應的問題

單獨使能PA的多個IO口中斷,中斷能正常觸發(fā),程序運行也正常;

先使能PA的IO口中斷,再使能PB口的PIN12中斷時,PA口的中斷不能觸發(fā),PB口的中斷可以正常觸發(fā),但觸發(fā)后,退出中斷處理后,程序好象死機了。


請問? ?1、PA、PB是否可以同時使能IO口中斷?

????????? 2、PB 12的中斷處理是否有什么需要特別注意的地方?


void HAL_SleepInit(void)

{

#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)

? GPIOA_ModeCfg( GPIO_Pin_4 |GPIO_Pin_8 |GPIO_Pin_13, GPIO_ModeIN_PU );? ? ? ? ? ? ? ? //初始化IO狀態(tài)

? GPIOA_ITModeCfg( GPIO_Pin_4 |GPIO_Pin_8 |GPIO_Pin_13, GPIO_ITMode_FallEdge );? ? ? ? // 設置下降沿喚醒

? PFIC_EnableIRQ( GPIO_A_IRQn );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //開啟GPIO中斷 PA口

? GPIOB_ModeCfg( GPIO_Pin_12, GPIO_ModeIN_PU );? ? ? ? ? ? ? ? //初始化IO狀態(tài)

? GPIOB_ITModeCfg( GPIO_Pin_12, GPIO_ITMode_FallEdge );? ? ? ? // 設置下降沿喚醒

? PFIC_EnableIRQ( GPIO_B_IRQn );? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //開啟GPIO中斷 PA口


? PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE, Long_Delay );//開啟GPIO喚醒使能

#if 0

? ? sys_safe_access_enable();

? ? R8_SLP_WAKE_CTRL |= RB_SLP_RTC_WAKE; // RTC喚醒

? ? sys_safe_access_enable();

? ? R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN;? // 觸發(fā)模式

? ? sys_safe_access_disable();? ? ? ? ? ? ? //

? ? PFIC_EnableIRQ(RTC_IRQn);

#endif

#endif

}


__INTERRUPT

__HIGH_CODE

void GPIOA_IRQHandler( void )

{

? GPIOA_ClearITFlagBit( GPIO_Pin_4 |GPIO_Pin_8 |GPIO_Pin_13 );? //GPIO喚醒會進中斷,要清除GPIO中斷

}


void GPIOB_IRQHandler( void )

{

? GPIOB_ClearITFlagBit( GPIO_Pin_12 );? //GPIO喚醒會進中斷,要清除GPIO中斷

}



從貼出的程序來看,PB中斷缺少

__INTERRUPT
__HIGH_CODE

應該是:

__INTERRUPT
__HIGH_CODE
void?GPIOB_IRQHandler(?void?)
{
??GPIOB_ClearITFlagBit(?GPIO_Pin_12?);??//GPIO喚醒會進中斷,要清除GPIO中斷
}



非常感謝您的回復,您的建議,稍后我會測試。


但PA中斷為什么不會觸發(fā)呢?在添加PB中斷配置之前,PA中斷觸發(fā)、響應都是正常的



添加PB中斷喚醒對PA是沒有影響的,可以將代碼修改后再測試看看,


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

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