请问下HC32L110系列如何开启基本定时器
stc_bt_config_t stcConfig;en_result_t en_result = Error;
uint32_t u32InitCntData = 0xffff0000;
DDL_ZERO_STRUCT(stcConfig);
/* 对外部exit0计数 gpio配置 */
Gpio_SetFunc_TIM0_EXT_P34();
stcConfig.enGateP = BtPositive;
stcConfig.enGate = BtGateDisable;
stcConfig.enPRS = BtPCLKDiv8;
stcConfig.enTog = BtTogDisable;
stcConfig.enCT = BtTimer;/* 定时器模式 */
stcConfig.enMD = BtMode2; /* 16位自动重装 */
stcConfig.pfnTim0Cb = cola_timer_ticker;
if(Ok != Bt_Init(TIM0, &stcConfig))
{
en_result = Error;
}
/* irq enable */
Bt_ClearIntFlag(TIM0);
EnableNvic(TIM0_IRQn, 3, TRUE);
Bt_EnableIrq(TIM0);
/* 1s/(24M/8分频/3) = 1us */
Bt_ARRSet(TIM0, 3 -1);
Bt_Cnt16Set(TIM0, 1000-1);/* 1us*1000 = 1ms定时器中断 */
Bt_Run(TIM0);
我这样配置为什么进入不了定时器中断?第一次用这个单片机,求大佬解答下 在你的代码中,你已经配置了定时器TIM0,并设置了中断回调函数cola_timer_ticker。然而,你提到无法进入定时器中断。最好是要检查一下中断向量表 确保中断向量表中正确配置了TIM0的中断处理函数。通常,中断向量表在启动文件(如startup_hc32f460.s)中定义 建议保证中断处理函数cola_timer_ticker正确实现,并且在中断向量表中正确指向 你已经调用了EnableNvic和Bt_EnableIrq来使能中断,但确保这些函数正确实现,并且没有被其他代码禁用。 检查定时器配置,确保定时器的配置参数正确,特别是分频系数和自动重装值 在进入中断处理函数之前,确保中断标志被正确清除。 在cola_timer_ticker函数中添加调试输出(如LED闪烁或串口输出),以确认是否进入中断处理函数 检查中断向量表:看看中断向量表是否配置正确 一般开启基本定时器应该很简单吧,你可以直接参考例程进行修改啊 定时器中断的优先级是否配置正确?还有就是定时器你配置初始化了没? 第一次用这个单片机 你设置了PCLK分频为8 ,这意味着定时器的时钟将为PCLK的1/8。然后你用ARR = 3 - 1 设置定时器的重载值,这将会影响定时器的周期。 学习一下, 楼主,解决了吗 ,我这里同样进不去中断,用官方的例程也不行 hc32l110 写bt驱动的真是个**,cnt32寄存器那里写的有问题,需要删掉RSV,要不然寄存器对不上。不知道那些使用基础定时器的,你们真的能进中断吗 从官网找例程,从开发板找例程 你设置的定时器模式为 BtMode2(16位自动重装模式),需要确保定时器的自动重装和计数器配置正确,以确保它能够在正确的时间触发中断。
页:
[1]