STM32——UCOSIII软件定时器

目录

创建定时器

OSTmrCreate()函数

开启定时器与关闭定时器

定时器回调函数


创建定时器

OSTmrCreate()函数

作用:创建一个定时器

位置:os_tmr.c

需定义的参数:

OS_TMR	tmr1;		//定时器块
void tmr1_callback(void *p_tmr, void *p_arg); 	//回调函数

调用:

void  OSTmrCreate (OS_TMR               *p_tmr,//指定定时器的指针,宏OS_TMR是一个结构体
                   CPU_CHAR             *p_name,//定时器名称
                   OS_TICK               dly,   //初始化定时器延迟
                   OS_TICK               period,//重复周期
                   /****/
                   OS_OPT_TMR_ONE_SHOT   单次定时器
                    OS_OPT_TMR_ONE_PERIODIC   周期定时器
                   OS_OPT                opt, //选择定时器选项
                   /****/
                   OS_TMR_CALLBACK_PTR   p_callback, //指定回调函数的名字
                   void                 *p_callback_arg, //回调函数参数
                   OS_ERR               *p_err //返回的错误码)

定时器分辨率: 定义 OS_CFG_TMR_TASK_RATE_HZ为100 设置定时器时间分辨率10ms

注:分辨率最小5ms,不能大于OS的时钟节拍

单次定时器:只执行一次,之后就不会调用回调函数(不用配置 period)

周期定时器:多次执行,并多次调用回调函数 (不用配置 dly)

应用实例:

	OSTmrCreate((OS_TMR		*)&tmr1,		
                (CPU_CHAR	*)"tmr1",		
                (OS_TICK	 )0,			
                (OS_TICK	 )100,          //100*10=1000ms
                (OS_OPT		 )OS_OPT_TMR_PERIODIC, 
                (OS_TMR_CALLBACK_PTR)tmr1_callback,
                (void	    *)0,			
                (OS_ERR	    *)&err);		

开启定时器与关闭定时器

开启定时器应用实例:

OSTmrStart(&tmr1,&err);	//开启定时器

停止定时器应用实例:

OSTmrStop(&tmr1,OS_OPT_TMR_NONE,0,&err);	//关闭定时器

定时器回调函数

 应用实例:

void tmr1_callback(void *p_tmr, void *p_arg)
{
    LED1=~LED1;	
}

你可能感兴趣的:(STM32,stm32)