定时器能够在规定到达的时间时,去执行指定的任务。支持一次性和重复性定时器

1. 添加相关头文件

1.1 标准C库头文件

#include <stdio.h>
#include <unistd.h>
#include <string.h>

1.2 鸿蒙头文件

#inlcude  "cmsis_os.h"
#inlcude  "ohos_init.h"

2. 定义定时器回调函数

定时器回调函数作用:当定时器到达指定时间,调用该函数执行指定的任务。

void timer_callback(void *arg)
{
	(void) arg;
	printf("定时器启动,开始执行定时器任务\r\n");
	/*在下方添加定时器要执行的任务*/



}

3. 定义定时器属性,创建与启动定时器

uint32_t exec;  //定义回调函数参数
void timer_task(void)
{
	osTimerId_t id;          //定义定时器ID
	uint32_t timerDelay; //定义定时器延时
	osStatus_t status;	 //定义定时器状态

    //调用创建定时器函数 (定时器回调函数,定时器类型, 回调函数参数,  NULL)
	id = osTimerNew(timer_callback, osTimerPeriodic, &exec, NULL);
	if(id != NULL)
	{
		timerDelay = 100U;  //设置定时器延时
		status = osTimerStart(id, timerDelay);  //启动定时器,开始计时
		if(status != osOK)  //判断定时器是否启动成功
		{
			printf("Start timer failed......\r\n");
		}
	}
}

4. 总程序代码

#include <stdio.h>
#include <unistd.h>
#include <string.h>

#inlcude  "cmsis_os.h"
#inlcude  "ohos_init.h"

void timer_callback(void *arg)
{
	(void) arg;
	printf("定时器启动,开始执行定时器任务\r\n");
	/*在下方添加定时器要执行的任务*/



}

uint32_t exec;  //定义回调函数参数
void timer_task(void)
{
	osTimerId_t id;          //定义定时器ID
	uint32_t timerDelay; //定义定时器延时
	osStatus_t status;	 //定义定时器状态

    //调用创建定时器函数 (定时器回调函数,定时器类型, 回调函数参数,  NULL)
	id = osTimerNew(timer_callback, osTimerPeriodic, &exec, NULL);
	if(id != NULL)
	{
		timerDelay = 100U;  //设置定时器延时
		status = osTimerStart(id, timerDelay);  //启动定时器,开始计时
		if(status != osOK)  //判断定时器是否启动成功
		{
			printf("Start timer failed......\r\n");
		}
	}
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐