MultiTimer,一款可无限扩展的软件定时器
扫描二维码
随时随地手机看文章
1. MultiTimer
今天给大家带来的开源项目是 MultiTimer,一款可无限扩展的软件定时器,作者0x1abin,目前收获 95 个 star,遵循 MIT 开源许可协议。
项目地址:https://github.com/0x1abin/MultiTimer
2. 移植MultiTimer
2.1. 移植思路
开源项目在移植过程中主要参考项目的readme文档,一般只需两步:
- ① 添加源码到裸机工程中;
- ② 实现需要的接口;
2.2. 准备裸机工程
本文中我使用的是小熊派IoT开发套件,主控芯片为STM32L431RCT6:
- 配置一个串口用于打印信息
- printf重定向
2.3. 添加MultiTimer到工程中
① 复制MultiTimer源码到工程中:
3. 使用MultiTimer
使用时包含头文件:
如果遇到multi_timer.c文件中NULL宏定义报错,则在multi_timer.h中添加头文件即可。
3.1. 创建Timer对象
/* USER CODE END PV */
3.2. Timer回调函数
-
-
-
-
-
-
-
-
-
-
-
-
/* Private user code ---------------------------------------------------------*//* USER CODE BEGIN 0 */void timer1_callback(){ printf("timer1 timeout!\r\n");}
void timer2_callback(){ printf("timer2 timeout!\r\n");}/* USER CODE END 0 */
3.3. 初始化并启动Timer
始化定时器对象,注册定时器回调处理函数,设置定时时间(ms),循环定时触发时间:
-
-
-
-
-
-
-
-
-
-
-
-
/* USER CODE BEGIN 2 */printf("multi timer test...\r\n");
//重复计时,周期为1000次,即1000ms=1stimer_init(