【样例实战】基于HarmonyOS鸿蒙Next物联网套件开发样例--软定时器
【样例实战】基于HarmonyOS鸿蒙Next物联网套件开发样例–软定时器
工欲善其事必先利其器,支持HarmonyOS的HiSpark WiFi-IoT开发套件
华丽亮相:
首发于HDC 2020
行业地位:
首批支持HarmonyOS的开发套件
官方推荐:
HarmonyOS官方推荐套件
量身打造:
润和软件HiHope量身打造
应用广泛:
HarmonyOS社区和广大HarmonyOS开发者中拥有广泛粉丝哦,快来加入HiSpark WiFi-IoT套件开发者大家庭。
【HiSpark系列】
Pegasus智能家居开发套件
基于海思Hi3861V100芯片,支持HarmonyOS
主控为WiFi SOC Hi3861,160MHz主频,SRAM 352KB,ROM 288KB,2M Flash。
1个主板、6个扩展版,支持多功能、多应用开发。
通用底板,降低开发难度,提升开发自主性。
板载NFC,实现HarmonyOS"碰一碰"。
套件详情可参考支持HarmonyOS的物联网套件Pegasus智能家居开发套件介绍
今天跟大家分享HiSpark WiFi-IoT 套件样例开发----软定时器(Timer)
一、Timer API
API名称 | 说明 |
---|---|
osTimerNew | 创建和初始化定时器 |
osTimerGetName | 获取指定的定时器名字 |
osTimerStart | 启动或者重启指定的定时器 |
osTimerStop | 停止指定的定时器 |
osTimerIsRunning | 检查一个定时器是否在运行 |
osTimerDelete | 删除定时器 |
osTimerNew()
osTimerId_t osTimerNew (osTimerFunc_t func, osTimerType_t type, void *argument, const osTimerAttr_t *attr)
参数:
名字 | 描述 |
---|---|
func | 定时器回调函数. |
type | 定时器类型,osTimerOnce表示单次定时器,ostimer周期表示周期性定时器. |
argument | 定时器回调函数的参数 |
attr | 定时器属性 |
二、代码分析
定时器的回调函数
void cb_timeout_periodic(void *arg) {
(void)arg;
times++;
}
使用osTimerNew创建一个100个时钟周期调用一次回调函数cb_timeout_periodic定时器,每隔100个时钟周期检查一下全局变量times是否小于3,若不小于3则停止时钟周期
void timer_periodic(void) {
osTimerId_t periodic_tid = osTimerNew(cb_timeout_periodic, osTimerPeriodic, NULL, NULL);
if (periodic_tid == NULL) {
printf("[Timer Test] osTimerNew(periodic timer) failed.\r\n");
return;
} else {
printf("[Timer Test] osTimerNew(periodic timer) success, tid: %p.\r\n", periodic_tid);
}
osStatus_t status = osTimerStart(periodic_tid, 100);
if (status != osOK) {
printf("[Timer Test] osTimerStart(periodic timer) failed.\r\n");
return;
} else {
printf("[Timer Test] osTimerStart(periodic timer) success, wait a while and stop.\r\n");
}
while(times < 3) {
printf("[Timer Test] times:%d.\r\n", times);
osDelay(100);
}
status = osTimerStop(periodic_tid);
printf("[Timer Test] stop periodic timer, status :%d.\r\n", status);
status = osTimerDelete(periodic_tid);
printf("[Timer Test] kill periodic timer, status :%d.\r\n", status);
}
三、如何编译
-
将此目录下的
timer.c
和BUILD.gn
复制到源码的应用程序目录下, -
修改源码的
applications\sample\wifi-iot\app\BUILD.gn
文件,将其中的features
改为:
features = [
"iothardware:timer_demo",
]
- 在源码顶层目录执行:
四、运行结果
[Timer Test] osTimerNew(periodic timer) success, tid: 0xe9b4c.
[Timer Test] osTimerStart(periodic timer) success, wait a while and stop.
[Timer Test] times:0.
[Timer Test] times:1.
[Timer Test] times:2.
[Timer Test] stop periodic timer, status :0.
[Timer Test] kill periodic timer, status :0.
五、相关资料获取
点击生态市场官方店铺-润和芯片社区,即刻下单!
已上线本开发套件专题指导教程《基于OpenHarmony 物联网应用开发实战》,点击了解详情!
更多关于【样例实战】基于HarmonyOS鸿蒙Next物联网套件开发样例--软定时器的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next物联网套件中,软定时器(Soft Timer)是一种基于软件实现的定时功能,适用于需要周期性任务或延时操作的场景。开发者可通过SoftTimer
API创建、启动、停止和删除定时器。例如,初始化一个定时器并设置回调函数,当定时时间到达时,系统会自动调用回调函数执行指定任务。软定时器资源占用少,适合在资源受限的物联网设备上使用,如传感器数据采集、设备状态检测等。通过合理配置,可有效提升系统响应效率和资源利用率。