中斷配置及服務(wù)程序如下
void?gpio_interrupt_init(void)?{ ????//初始化位輸入上拉 ????GPIOB_ModeCfg(GPIO_Pin_13,?GPIO_ModeIN_PU); ????//開(kāi)啟下降沿中斷 ????GPIOB_ITModeCfg(GPIO_Pin_13,GPIO_ITMode_FallEdge); ????//開(kāi)啟GPIO的睡眠喚醒,如果需要的話 ????PWR_PeriphWakeUpCfg(?ENABLE,?RB_SLP_GPIO_WAKE?);? ????//開(kāi)啟GPIO中斷 ????NVIC_EnableIRQ(?GPIO_IRQn?); } //中斷服務(wù)程序 void?GPIO_IRQHandler(void)?{ ????GPIOB_ClearITFlagBit(GPIO_Pin_13); ????button_detected?=?true; }
uint32_t?irq_status; while(1)?{ ????TMOS_SystemProcess(?); ????SYS_DisableAllIrq(?&irq_status?); ????if(?true?==?button_detected?)?{ ????????tmos_set_event(?Peripheral_TaskID,?BUTTON_EVENT); ????????button_detected?=?false; ????} ????SYS_RecoverIrq(?irq_status?); }
熱門產(chǎn)品 :
CH397: 高集成度、低功耗USB網(wǎng)卡芯片