本帖最后由 aa642895350 于 2020-6-17 08:45 编辑
这是interrupts_hc32l13x.c中的中断函数
void TIM0_IRQHandler(void)
{
#if (INT_CALLBACK_ON == INT_CALLBACK_TIM0)
Tim0_IRQHandler();
#endif
}
这是我写的函数不能进入
void Tim0_IRQHandler(void)
{
static uint16_t i;
//Timer0 模式0 溢出中断
myprintf("定时器中断1s\r\n");
if(TRUE == Bt_GetIntFlag(TIM0, BtUevIrq))
{
i++;
if(i>=10000)
{
i = 0;
myprintf("定时器中断1s\r\n");
}
Bt_ClearIntFlag(TIM0,BtUevIrq); //中断标志清零
}
}
把Tim0_IRQHandler改为TIM0_IRQHandler就可以运行了,为什么呢?
|
@aa642895350 :如果你用的是KEIL的话,试试52x,比如525 或以后的版本试试
@martinhu :宏定义有效,去掉该段定义,也无法进入,有没有可能是编译器的问题?识别不了weak?
这段宏定义有效了吗? #if (INT_CALLBACK_ON == INT_CALLBACK_TIM0)