九、配置中断向量及回调函数(NVIC)
STM32F4的中断向量通道和对应功能是固定死的,而HC32F4A0的非常灵活,可以自由配置。不过使用STM32的标准库函数来配NVIC非常方便,所以移植了STM32F4的misc.c文件,来对HC32F4A0进行NVIC配置。移植的时候需要修改以下几处:
1.misc.h
2. misc.c
然后即可使用misc文件里面的函数来配置NVIC了。
/**因为HC32F4A0的中断向量通道与中断源以及相应的中断服务函数可以灵活映射,所以需要手动配置**/ stcIrqRegiConf.enIRQn = Int003_IRQn; /* Register INT_TMR6_2_GCMA Int to Vect.No.003 */ stcIrqRegiConf.enIntSrc = INT_TMR6_2_GCMA; /* Select Event interrupt of M4_TMR6_2 */ stcIrqRegiConf.pfnCallback = &Tmr6_2_CapInputCallBack; /* Callback function */ (void)INTC_IrqSignIn(&stcIrqRegiConf); /**后面就使用移植过来的misc文件中的库函数来配置NVIC了,注意ENABLE要改为Enable,其它跟STM32一样了**/ NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); NVIC_InitStructure.NVIC_IRQChannel = Int003_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2; NVIC_InitStructure.NVIC_IRQChannelCmd = Enable; NVIC_Init(&NVIC_InitStructure);
Intxxx_IRQn可选择为Int000_IRQn ~ Int031_IRQn,以及Int056_IRQn ~ Int061_IRQn。
|