【翻译CMSIS_RTOS2 API v2】鸿蒙CMSIS-RTOS2接口之定时器管理
RTOS定时器的接口使用或常见问题
·
文章目录
鸿蒙在CMSIS-RTOS2接口中封装了LiteOS-M的内核代码。因此当需要使用CMSIS-RTOS2接口时,只需要调用相应接口就行了。本篇文章将会记录官网API的使用方法以及使用案例,记录自己学习的想法和使用技巧会保持持续更新哟!!!
CMSIS-RTOS API v2
接口顺序将会按照小熊派官网视频讲解的顺序记录以便自己学习和使用。
软件定时器
外文名称:Timer Management
源接口地址:Timer Management
HarmonyOS_PPT:HarmonyOS内核开发-定时器管理.pdf
软件定时器可以控制函数的运行,非常便捷地控制函数的运行时长和定时服务。
结构体(数据类型)
osTimerAttr_t
所属函数:osTimerNew
数据类型 | 属性名称 | 描述 | 默认值 | 备注 |
---|---|---|---|---|
const char * | name | 定时器名称 | NULL | |
uint32_t | attr_bits | 保留字段 | 0U | |
void * | cb_mem | 任务块指针 | NULL | |
uint32_t | cb_size | 任务块指针大小 | 0U |
osTimerId_t
所属函数:[ osTimerStart | osTimerStop | osTimerDelete ]
所属函数返回值:osTimerNew
定时器ID,即定时器唯一标识符
osTimerFunc_t
所属函数:osTimerNew
定时器入口函数
函数可能会在当前作用域下,中断执行的任务
osTimerType_t
所属函数:osTimerNew
定时器类型
定时器类型 | 描述 |
---|---|
osTimerOnce | 定时器里面任务执行一次 |
osTimerPeriodic | 定时器里面任务循环执行 |
功能(函数)
osTimerNew:新建定时器
参数名称 | 数据类型 | 描述 |
---|---|---|
func | osTimerFunc_t | 定时器入口函数 |
type | osTimerType_t | 定时器类型 |
argument | void * | 定时器入口函数的参数 |
attr | const osTimerAttr_t * | 定时器的属性 |
返回值 | osTimerId_t | 定时器ID |
注意事项
- 定时器只有在使用 osTimerStart 后,才能被调用
- 可以在RTOS开始前进行调用
osTimerStart:启动定时器
参数名称 | 数据类型 | 描述 |
---|---|---|
timer_id | osTimerId_t | 定时器ID |
ticks | uint32_t | 指定定时器超时值 |
返回值 | osStatus_t | 操作结果 |
osStatus_t
参数名称 | 描述 |
---|---|
osOK | 操作成功 |
osErrorParameter | 定时器ID为NULL或无效 |
osErrorResource | 任务无效状态 |
osErrorISR | 任务不能被终止 |
osTimerStop:停止定时器
参数名称 | 数据类型 | 描述 |
---|---|---|
timer_id | osTimerId_t | 定时器ID |
返回值 | osStatus_t | 操作结果 |
osStatus_t
参数名称 | 描述 |
---|---|
osOK | 操作成功 |
osErrorParameter | 定时器ID为NULL或无效 |
osErrorResource | 任务无效状态 |
osErrorISR | 任务不能被终止 |
osTimerDelete:删除定时器
参数名称 | 数据类型 | 描述 |
---|---|---|
timer_id | osTimerId_t | 定时器ID |
返回值 | osStatus_t | 操作结果 |
osStatus_t
参数名称 | 描述 |
---|---|
osOK | 操作成功 |
osErrorParameter | 定时器ID为NULL或无效 |
osErrorResource | 任务无效状态 |
osErrorISR | 任务不能被终止 |
osTimerGetName:获取定时器名称
参数名称 | 数据类型 | 描述 |
---|---|---|
timer_id | osTimerId_t | 定时器ID |
返回值 | String | 定时器名称,默认值为 " " |
注意事项
- 出错返回NULL
osTimerIsRunning:判断定时器是否运行
参数名称 | 数据类型 | 描述 |
---|---|---|
timer_id | osTimerId_t | 定时器ID |
返回值 | Int | 0 未运行 1 运行中 |
更多推荐
已为社区贡献4条内容
所有评论(0)