PB03共有6个硬件TIMER,其中4个已经被协议栈、OSAL调度器等软件资源所使用,只能使用剩下的两个定时器TIMER5与TIMER6。 Timer 中断产生后不会自动停止,而是自动装载数据进行下一次计数,如此反复。如需要将其停止,可手动将其关闭。 当开启休眠模式时,休眠后TIMER信息会丢失,唤醒后需要重新配置。 定时器的基本函数介绍: int hal_timer_init(ap_tm_hdl_t callback) 用于初始化定时器并设定定时器的中断回调函数
int hal_timer_set(User_Timer_e timeId,uint32_t us) 设置定时器的定时时间 timeId –指定的定时器 us—定时时间单位微秒
int hal_timer_mask_int(User_Timer_e timeId,bool en) 屏蔽或使能定时器中断 timeId –指定的定时器 en 为 true 表示使能中断,为 false 表示屏蔽中断。
int hal_timer_stop(User_Timer_e timeId) 停止对应的定时器运行 代码示例: 配置定时器5每500毫秒中断一次 - Timer初始化
- hal_timer_init(timer_callback);
- hal_timer_set(AP_TIMER_ID_5, 1000 * 500);//500ms
复制代码中断回调函数 - void timer_callback(uint8_t evt) {
- switch(evt)
- {
- case HAL_EVT_TIMER_5:
- LOG("Time5_interrupt\n");
- break;
- case HAL_EVT_TIMER_6:
- break;
- }
- }
复制代码
|