公司动态
HC32F460KCTA的PH2外部中断配置
HC32F460KCTA的第一引脚PH的第一个功能外部中断EIRQ实现代码#include hc32_ll.h /* 中断回调函数声明 */ void EIRQ2_Callback(void); void EIRQ2_Init(void) { stc_extint_init_t stcExtIntInit; stc_irq_signin_config_t stcIrqSignConfig; stc_gpio_init_t stcGpioInit; /* GPIO config */ (void)GPIO_StructInit(stcGpioInit); stcGpioInit.u16PinState PIN_STAT_RST; stcGpioInit.u16PinDir PIN_DIR_IN; stcGpioInit.u16PinOutputType PIN_OUT_TYPE_CMOS; stcGpioInit.u16PinDrv PIN_LOW_DRV; stcGpioInit.u16Latch PIN_LATCH_OFF; stcGpioInit.u16PullUp PIN_PU_ON; stcGpioInit.u16Invert PIN_INVT_OFF; stcGpioInit.u16ExtInt PIN_EXTINT_ON; stcGpioInit.u16PinAttr PIN_ATTR_DIGITAL; (void)GPIO_Init(GPIO_PORT_H, GPIO_PIN_02, stcGpioInit); /* ExtInt config */ (void)EXTINT_StructInit(stcExtIntInit); stcExtIntInit.u32Filter EXTINT_FILTER_ON; stcExtIntInit.u32FilterClock EXTINT_FCLK_DIV8; stcExtIntInit.u32Edge EXTINT_TRIG_BOTH;//EXTINT_TRIG_FALLING; (void)EXTINT_Init(GPIO_PORT_H, stcExtIntInit); /* IRQ sign-in */ stcIrqSignConfig.enIntSrc INT_SRC_PORT_EIRQ2; stcIrqSignConfig.enIRQn INT002_IRQn; stcIrqSignConfig.pfnCallback EIRQ2_Callback; (void)INTC_IrqSignIn(stcIrqSignConfig); /* NVIC config */ NVIC_ClearPendingIRQ(stcIrqSignConfig.enIRQn); NVIC_SetPriority(stcIrqSignConfig.enIRQn, DDL_IRQ_PRIO_DEFAULT); NVIC_EnableIRQ(stcIrqSignConfig.enIRQn); } int temp0; void EIRQ2_Callback(void) { temp; } int mytemp0; int main(void) { LL_PERIPH_WE(LL_PERIPH_GPIO); EIRQ2_Init(); LL_PERIPH_WP(LL_PERIPH_GPIO); while (1) { mytemp; } }实验结果PH店铺变化时会进入中断回调函数。